他说F12里有东西,那我们就打开
I put something in F12 for you include 'flag.php'; $flag='MRCTF{xxxxxxxxxxxxxxxxxxxxxxxxx}'; if(isset($GET['gg'])&&isset($GET['id'])) { $id=$GET['id']; $gg=$GET['gg']; if (md5($id) === md5($gg) && $id !== $gg) { echo 'You got the first step'; if(isset($POST['passwd'])) { $passwd=$POST['passwd']; if (!is_numeric($passwd)) { if($passwd==1234567) { echo 'Good Job!'; highlight_file('flag.php'); die('By Retr_0'); } else { echo "can you think twice??"; } } else{ echo 'You can not get it !'; } } else{ die('only one way to get the flag'); } } else { echo "You are not a real hacker!"; } } else{ die('Please input first'); } }Please input first
可读性真差,在F12里双击它会变得好看一点
第一个点是md5($id) === md5($gg) && $id !== $gg
简单的md5强比较,用数组
md5强比较没有规定字符串如果这个时候传入的是数组不是字符串,md5()函数无法解出其数值并且不会报错,就会得到数值相等;
第二个点is_numeric是弱比较数字只需要1234567a就可以绕过,注意是post方式
总结
我一开始没仔细看,以为是弱比较,然后发现不对,找了找问题发现原来是强比较。。。
弱比较和强比较都可以用数组!但是我一开始用的0e
[GYCTF2020]Blacklist我上一次刷题居然漏了一个注入!!!
fuzz一下发现过滤的比强网杯更严格了
preg_match("/set|prepare|alter|rename|select|update|delete|drop|insert|where|./i",$inject)
堆叠还是可以用的!
又学习了堆叠的骚操作!!
HANDLER ... OPEN可以打开一个表
HANDLER ... READ可以访问,并在会话中调用HANDLER ... CLOSE或者绘画结束前不会关闭,前提是该表对象未被其它会话共享
payload
1';HANDLER%0aFlagHere%0aOPEN;HANDLER%0aFlagHere%0aREAD%0aFIRST;HANDLER%0aFlagHere%0aCLOSE;#
总结又收获了堆叠注入的骚姿势
上传一个马试一试,发现后缀不能有ph
上传shell.Php也不行看来大小写一样
上传shell.shtml和shell.pwml说我太露骨
那我就修改一下Content-Type为image/jpeg
上传他说我还是php文件,那我把
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?