X黑手网
X黑手网
X黑手网

Web渗透_SQL注入3

SQL注入(3)

如果无权读取information schema库 / 拒绝union、order by语句,只能通过猜测的方式:

猜列名

' and asd is null--+ (+代表空格)
  • 当我们执行之后,通过报错可看出来没有这个asd

 

image

  • 通过更换asd,去猜测,如果没有报错,说明数据库存在这个列名

 

image

  • 但是一般情况下,都是通过跑字典的方式,kali里面自带字典文件

 

image

  • 之后我们就可以通过bp进行跑字典的操作,首先执行随便的参数,然后代理截断下来

 

 

image

  • 之后将截断的发送到repeater测试服务器是否可以正常响应

 

image

  • 服务器能够正常响应之后的话,发送到intruder去

 

image

  • 之后选中你想要插入的点,选择它,然后点击add

 

image

  • 接着点击Payloads,传入我们的字典文件

 

image

  • 之后点击start attack

 

image

  • 之后我们就可以分析出哪些是正常存在的列了

 

image

猜表名

  • 列表猜出来了,就可以开始猜测表名字,刚刚我们看到确实存在user这个列名

'and table.user is null--+ (+代表空格)
  • 如果表名不存在会报错

 

image

  • 之后的才做和猜列名一样了,不做详细概述,自己试试吧,表名的字典路径如下

 

image

猜库里面的其他表

'and(select count(*) from b)>0--+(+代表空格)

 

image

上面的直接爆出库名了;

  • 接着从bp里面去跑字典就行了,库名不变,猜测表明,不做详细步骤描述了

猜测字段内容

'or user='admin

 

image

'or user like '%a%   
##包含a的user

 

image

当数据库可写

';update users set user='yuanfh' where user='admin
  • 将用户名修改,直接注入会报错,原因是Sql客户端工具的问题,直接用工具演示

 

image

 

image

 

image

同理也可以修改密码、添加用户、删除表等等,熟悉SQL语句的人去尝试下吧;

SQLi没有通用的方法,掌握原理,了解各种数据库特性;