buuctf [Ping Ping Ping]
打开靶机看到 Ping测试工具很容易出现命令注入漏洞所以我们输入 /?ping127.0.0.1 判断。正常 ping返回结果我们输入 /?ping127.0.0.1;ls 查看目录发现flag ,就在当前目录下我们输入 /?ping127.0.0.1;cat flag 查看flag文件结果发现报错我们判断是黑名单过滤我们重新构造payload:/?ping127.0.0.1;ag;cat$IFS$1fla$a.php显示ping 结果但没有输出flag大概率被注释掉或者隐藏在HTML源码里。用F12查看源码找到flag。1.为什么往命令注入方向做1确认功能点因为截图显示这是一个 ping测试工具用户输入会被后台处理。2提出假设基于功能特性怀疑存在“命令注入”漏洞。3进行测试输入ping127.0.0.1以及ping127.0.0.1;ls4得出结论存在命令注入漏洞可以执行任意系统命令。2.怎么判断是否为命令注入漏洞;看buuctf [Esec]-CSDN博客3.什么是黑名单过滤黑名单就是一个’禁止列表’里面记录这着不允许出现的字符单词或模式。4.黑名单有哪些绕过方法1特殊符号过滤被过滤的符号 用什么替换; \| \|\|%0a\| ; ,%0a ; \|%0a反引号 $()$() *通配符 变量拼接单字符通配/路径分隔 进入目录操作 用 {cmd,arg}格式2.空格过滤$IFS , ${IFS} , $IFS$1 , (输出重定向), {cat,flag}花括号,%09 ,%203.关键词过滤Cat:1用 tac倒序输出morelessheadtailnlsortodxxd 替换cat2使用通配符或*3用 ac;${a}t变量拼接4用/转义5Base64编码6用 ’’ 或 ’’’’ 包裹Flag:1Fla*通配符2变量拼接 ag;cat fla$a3从 ls 中取4.绕过编码/变形过滤过滤 . 用source 命令过滤 用 ${var:?} 等方式过滤$ 用 命令替换过滤字母数字 用 $0 $? 等特殊变量拼接5.如果payload执行成功但没有输出flag大概率被注释掉或者隐藏在HTML源码里。后面不管是做文件包含命令执行还是其他的web 题如果页面没有变化或者看着不对第一反应永远是按F12。不要只看页面不看源码。