[GXYCTF2019]Ping Ping PingImported from BUUCTF/CTFd challenge #1680一、进入环境/ip先是随便试了几个数字12什么的he全丢了试试127.0.0.1嗯嗯这样就全通了。我还去尝试了?ipflag小嘴不太干净…这应该是过滤了那肯定还有其他过滤词这里可以用bp去循环尝试试出来被过滤掉的字符但是我看了别人的wp就不费事了空格被拦可以用$IFS代替catlsenv都可以使用bash不行。ls查看一下居然有flag.php但是flag被过滤了必须尝试去构造payload应该能得到flagenv查看有惊喜显示了FLAGnot_flag最有用PWD/var/www/htmlUSERwww-data可以使用$FLAG去得到not_flag也就是可以得到flag通过cut -u-5去切除第五个字符后的-flag$FLAG取出环境变量FLAG得到值同时因为空格被过滤所以使用$IFS代替结果就是?/ip127.0.0.1;cat$IFSecho$IFS$FLAG|cut$IFS-c5-.php之后再源码中看到flag本题的难点主要再于尝试被过滤词汇以及寻找代替构造出cat flag.php的效果还有就是一点思路的问题要不然也不用去看别人的flag抄一下别人的知识点总结四、知识点总结多层过滤的分工提示语不同层给不同报错把提示语收集齐 直接拿到黑名单全貌。触发一次比 fuzz 一遍便宜得多。判据要分清扫输入还是扫输出fxck your flag!扫的是输入原文。这决定了不能写not_flag字面量必须借服务端变量展开来构造敏感串。$IFS绕空格通用性极强。{}被禁时用$IFS而非${IFS}$9也是 IFS 引用形式。环境变量是免费的字符来源$FLAG、$PWD、$PATH、$HOME往往含被禁字符/、_、flag配cut/tr/rev可洗出任意子串。反引号 vs$())被禁时是唯一可用的命令替换。/被禁不等于无解命令不带参数时默认作用于 CWDls即可出文件名。纠错纪律定位黑名单时一次只改一个变量否则会把 A 字符的拦截误归因给 B。这题做的不烧心
阅读完成 · 觉得有帮助?