W3_web类题目集1

[SUCTF 2019]EasySQL1

首先试试1 1' 1"判断是数字型,顺便试试万能密码1' or 1=1 #,回nonono,
多次尝试知道了nonono是被过滤了,bp爆破下那些被过滤了,还挺多的,or and column information_schema.tables,union ,",flag,UNION这些都被过滤了,不过select和;没
看了下wp说是短路逻辑,语句是SELECT <输入> || flag from table
这个语句会在输入的值和flag值做或运算,而在SQL中不用数字开头的字符串和0都是false,而数字开头和正负数都是true;
这里flag为非数字开头字符串,识别为false,无论如何都不会回显flag,所以要打破语句结构;
思路一:
||的含义可以转变,set sql_mode=PIPES_AS_CONCAT,这个可以把||当成拼接符号,将flag拼接在后面
1;set sql_mode=PIPES_AS_CONCAT;select 1
思路二:
注入,1,让1和后面flag判断,然后寻出所有值

[强网杯 2019]随便注
这题目是真好玩
首先试试1 1' 1" ,是单引号,然后试试万能钥匙1' or 1=1 # 成功
然后想错了,我去再用1' and <语句> #捣鼓布尔盲注去了(有回显一般不会是这个)然后发现SELECT和WHERE被过滤了,放弃了;
回到正轨,使用1';show tables;#爆出表words和1919810931114514
然后分别爆下两张表的字段

点击查看代码
1';show columns from `words`;#
1';show columns from `1919810931114514`;#
flag在那一串数字的表里,显然不是当下这个语句后面跟着的表,不然早给万能钥匙爆出来了,所以想到可以试试替换表名和字段名,然后在查询时,就会把数字表的flag当成words表的id输出了

0';rename table `words` to words2;rename table `1919810931114514` to words;alter table words change flag id varchar(100);show tables;#
今天做了几道题目,明天整理下,有反序列化构造,构造数组绕过检测,带有图片头的一句话木马上传,还有很多简单的扫后台

[RoarCTF 2019]Easy Calc
好玩,首先抓包,发现流量是发向calc.php的,所以去访问下,直接出源码了,有个过滤$blacklist = [' ', '\t', '\r', '\n',''', '"', '`', '[', ']','$','\','^'];
问题不大,发现落手点eval('echo '.$str.';'); 大概是在$str做手脚,但没啥思路,看了wp
1.绕过waf,用的是在参数前加空格,waf会把有空格和没空格的区分,但传到php里面又会变成不包含前面空格的参数。
2.绕过过滤使用scandir搜寻

posted @ 2026-03-11 23:34  HexCat  阅读(0)  评论(0)    收藏  举报