제목 : 2022 Sichuan-Chongqing 네트워크 및 정보 보안 직업 기술 경쟁-개별 예비 경쟁 쓰기

1.Web​

1-1:题目名称:目录扫描​

1049983-20220914153423513-1246802504.jpg

1049983-20220914153424208-1898347562.jpg

1049983-20220914153424981-1905335670.jpg

FLAG:
DASCTF {84A70245035CA88088A2BA6AE2378021}

1-3:题目名称:MissingData​

가장 중요한 것은 ob_start ()를 시작하는 것입니다. 따라서 모든 출력은 버퍼에 저장되며 사용자는 수동으로 출력을 가져옵니다.
따라서 파일 이름 $ this-log_name은 hello로 얻습니다.
$ hello=$ _get [ 'hello'];
에코 $ 안녕하세요;
$ this-log_name=base64_decode (ob_get_contents ()); //hello로 전달 된 값을 log_name에게 저장
ob_clean ();
파일 컨텐츠는 UA에 대한 원격_addr 연결입니다.
$ getLog-setip ($ _ server [ 'remote_addr']);
$ getLog-setuserAgent ($ _ server [ 'http_user_agent']);
$ getLog-eCholog ();
$ log_info=date ( 'y-m-d h:i:s') .ob_get_contents ();
마지막 소멸자는 통나무를 씁니다
public $ log_path='/log/';
file_put_contents (dirname (__ file __). $ this-log_path. $ this-log_name, $ log_info);
//경로는 ./log/$_get]]입니다.
//UA에서 문장을 작성하면 괜찮습니다
출력은 먼저 버퍼에 버퍼에 던져서 파일에 저장됩니다. 파일 이름은 Hello에 의해 제어됩니다. 파일 내용 ua에 문장을 작성하십시오.
1049983-20220914153425682-940110017.jpg

1049983-20220914153426252-71252019.jpg

1049983-20220914153426932-450723456.jpg

2.MISC​

2-3-题目名称:0101​

1049983-20220914153427482-1717660526.jpg

1049983-20220914153428263-700708093.jpg

PK로 시작하여 지퍼 압축 패키지 인 것으로 밝혀졌으며 A.ZIP로 변경되었습니다.
다음 스크립트를 사용하여 flag:을 얻으십시오
importzipfilez=zipfile.zipfile ( './a.zip') foriinz.filelist:print (i) s=''foriinrange (304) :x=z.getInfo (f'file/{i} .png ') ifx.file_size500333333333333333333333333333333333:s. '1'# print (s) print (int.to_bytes (int (s, 2), 304 //8, 'big')))
flag: dasctf {jo2yakt_icrgmzz3gwe_swt8vqadqo}

3.CRYPTO​

3-1题目名称:soeasy_rsa​

GMPY2 가져 오기 *
crypto.util.number import *에서 *
a=2380402194007867640834230133203689000047281364800764795302197520512532731 882164772245921609577026496538897351323353113131788386708604878476786666 756050157264721772586844459630640657687878507037529439070526513923949467843 3717664180257965624133033383511215139076867891548862071585154818281366666666666809 18705880026385182452590786003914393728304943908336579405685696184210497002 926036369505357274949589399994522049393537334880294604482825148431031457951 0217353449530415697149035860812468085595015443236750965261285903019752959 34906923418596982394068541460960927418887889568286009102777272496856721290
p=iroot (a, 2)
인쇄 (P)
P=154285520837435281376516898144008799302098418019260366369234765042795645 086703863131549256869630446819852185017005249707039620555555078075480967914632 50981022613175034082324265288338519653179637243674514007442185191001273565127 093303845334444550007384054303738805619875089198432987548251943961546904551
print (is_prime (p))
C1=
75949211970645260477840809230795170598275394636655585446502049744151634977806266592064437936 389888280642329073167371358021391264602808272827494458434164732495785719505318822019624556 1623697425292916511774852569537275299008074069250282222480373555169325242455879869868679359 7700558084385380459934173055554675151532471805848929690631906087429611183343708379602971812
C2=
779079411537684904681802058459484423862935719534484107636402396281850683883752141252753 64793691306498214165236283168007755426852176310895436062009501916078505874057577774444461 643969273938731270627991795925242619293964896249295940347253817951640071408626267765206119 44302335981903665518644484408911114493154435554813048769653008605945892957382219567188182572
Q=iroot (a- (p ** 2), 2)
인쇄 (Q)
Q=88834735806219151348815643613891579826598872460149267394117
n=p*q
범위의 E (2 ** 16) :
try:
D=반전 (E, (P-1)*(Q-1))
m=pow (c1, d, n)
m=long_to_bytes (m)
m:에서 b'dasctf '인 경우
인쇄 (e)
인쇄 (m)
3:Pass를 제외하고
1049983-20220914153428930-1347021789.jpg

3-2题目名称:middlersa1​

DP 저수준 누출, DP Sagemath를 직접 복원하십시오
Fromtqdmimport*Secret=16421222479477767590084047512154856959705749371710428047250478126321193705946117104555523075671852095209520952095209520952095209952095209520952095209520952095 5329020806298704837870357423542868447319210471478014757295306394735433668 122104609082311237893278140109351209752433248543970047894914231006593125874 48213333640501982925293393276830694320784656127390783077995970964171428406463 6799535686928200760854462409805059498265048494958482350484901180959579651f.x=다항식 (zmod (n)) d=inverse_mod (e, n) forkintrange (1, e) :
F=(2^350 *x + Secret) + (K-1) *d
f=f.monic ()
x0=F.small_roots (x=2 ** (160+1), 베타=0.44, Epsilon=1/32)
iflen (x0)!=0:
dp=x0 [0]*2^350+비밀
foriinrange (2, e) :
p=(e*integer (dp) -1+i) //i
IFN%p==0:
부서지다
IFP0:
계속 계속하십시오
else:
print ( 'p=', p)
print ( 'dp=', dp)
부서지다
charon@root:~/desktop$sage3.sage
3%| 21 | 2131/65536 [04:20233333333:43, 7.79it/s] ( 'p=', 7285247160124204278422137084033487832078298767596529079060747274245819462 0664773114957048007982187342569596881346401317790559430521087133382333749429)
( 'dp=', 2369981376279023332767743813661589724874396100700062554826071275698752736178 5137753678241058692497063006177253360854254836549541031586728234083256081)
3%| 21 | 2131/65536 [04:202:09336008, 8.18IT/s]
fromcrypto.util.numberimport*fromgmpy2import*p=728524716012420427842213708403348783207829876759652907906020 7472774245819462066477311495704800798218734256959968813464013179059430521087133338233749429N=5329020629 8704837870357423542868544673192104714780147572953033947354433681220460908231123789327814093952453 32485543970047894914231006593125874482133333333333333333333333333333333333333333333333333333307846612739078307999979641714284 0664636795356869282007608544462409805949826504849495848235048490118010959579651C=1216458390128267235698 3180355557474254197994714331207509347979795520206617381347858747259319024376651968008883856282869034718 03669392265118265704723742518812401306444616333497184556975343283456918105040589613511254141812308642 9970583725002088849429031805086981302359249838047791552928679679622761PRINT (is_Prime)) 인쇄 (gcd (n, p)) q=n //pe=0x10001d=반전 (e, (p-1)*(Q-1)) m=pow (c, d, n) print (long_to_bytes (m))
1049983-20220914153429667-1675732465.jpg

DASCTF {6F05154B11BDF950CD2444176618139A}

3-3 题目名称:middlersa3​

무료, 나는 소스 코드에서 직접 플래그에 주었다.
fromcrypto.util.numberimport*flag=b'dasctf {ed3256281d277e12d92d926b0e8b49f6d78} 'p=getprime (512) q=getprime (512) e=0x10001d=e, (p-1) dp=d%) dp=d%. (p-1) print ( 'dp:', (dp (dp (2 ** (512-50) -1)) 50) print ( 'n:', p*q) print ( 'c:', pow (bytes_to_long (플래그), e, p*q) '' 'dp: 212805869527569651287600475254013576658734290422001997017941797 70820634047195468195431181891496748574252592319139131895N: 6275040413237878235178265444354374763019749894041776451397900503741586276025 09619666644447472860353808644751425715077392985705893045173191928945366689 5924318267595065857666587937426343157432947610821599765148714444293453114 43492805021675960165742782166437419631323332344986584155155039999413383C: 55337446119274361069656497851407470719350550924802490857894785259932536136 231609682528777247087507328476865616788879526591344444995214348240187099 238582445758002389884725560169750050917959735297922450030075064765749276015138 482194721673506034988888835979072966831180110313330354769895784785710256 '' '' '
DASCTF {ed3256281D277E12D926B0E8B49F6D78}

4.RE​

4-1题目名称:simpleDispy​

Pydis 읽기 질문, Pydis Verification 알고리즘을 수동으로 복원하십시오.
arr=[47378,
29475,
46200,
39869,
67243,
68695,
73129,
27171,
53832,
30653,
60541,
67276,
58816,
63571,
50131,
34471,
67922,
82293,
33259,
67538,
57810,
50339,
34632,
68754,
83192,
36077,
60424,
54547,
56308,
33565,
69425,
84024]# 확인
k=22643
flag='t'*32
범위의 i (32) :
num=(ord (flag )*255)+k
arr !=num: 인 경우
인쇄 ( '오류')
부서지다
k=(k+num)0xffff# 복원 플래그
k=22643
flag=''
범위의 i (32) :
flag +=chr (((arr -k) //255))
k=(k+arr )0xffff
인쇄 (플래그)
1049983-20220914153430356-820348971.jpg

FLAG:
AB0C216EC63A9F984CBF8975AD63E09C

4-2题目名称:stripgo​

v1=encoding_base64_newencoding ((__ int64) 'qwertyuiopasdfghjklzxcvbnmqwertyuoopasdfghjklzxcvn/+m1234567890', 64ll); if (v4==32runtime_meTime _MeTime) (__int64) 'k/wyqbfyruisb1pse2kydvyxm2cfmj==', 32ll)))))
변형 된 테이블베이스 64
https://gchq.github.io/cyberchef/#recipe=from_base64('QWERTYUIOPASDFGHJKLZXCVBNMQWERTYUOOPAS dfghjklzxcvbn/%2bm1234567890 ', true, false) input=sy9xexfcrnlyvwlzqjfqc2uys3levll4tttjdzk1kpt0
 
뒤로
상단