sqli-labs less42

管理员 2020-01-02 PM 323℃ 4条

1.老朋友,又见面了

2.注册账号跟找回密码那里不能使用,那就直接从登录表单注入下手

账号输入1,然后密码输入2' 点击login发现回显报错,根据报错信息推断使用单引号闭合。

3.在password参数构造 1' or 1=1#提交发现登录成功,来到一个更改密码的界面。

4.但是更改密码需要旧密码,我们并不知道旧密码这怎么办呢?

另外我说下hackbar怎么调试重放提交

有了上面的东东,我们就能更方便的测试注入

5.经过测试发现更改密码的三个输入框都做了过滤,所以这里无法利用,那我们回到登录界面,利用password的参数进行注入

这是原本的users表

构造堆叠语句可以对数据库进行操作,堆叠语句的意思就是把sql语句用 ; 隔开,这样就成了两段互不相干的sql语句。关于堆叠注入的更多玩法需要同学们去发掘。

利用这个,可以添加表,删除表,向表内添加或删除数据,

如添加一个用户:

;insert into users value(100,'0verflow','password')#

虽然执行后界面没有显示什么,但是我们查看数据库是已经添加进去了

这就类似于注册用户的这么一个功能,有的同学会说那这样子的话,是不是可以构造二次注入,我觉得很难把,因为没法把注释符插进去,没有注释符的话二次注入很难进行一些操作。

那除了添加数据,当然也可以删除数据或者修改数据

把 admin 用户的密码改为password:

;update users set password='password' where username='admin'#

可以看到,admin用户的密码果然被更改了

删除数据:

;delete from users where id=100#

执行后删除成功

然而以上操作在现实环境中很难直接利用,因为你根本不知道库名、表名还有字段名。

那都没有回显我们怎么才能知道数据库里面的信息呢?其实办法肯定都是有的,不过都比较困难,如果你知道网站的绝对路径,可以把一句话木马写进去,然后再用菜刀去连接,这样就能得到图形化操作界面,做什么操作都比较方便。

还有的就是直接利用盲注,我们这里可以利用布尔型盲注。

payload:

2' or 1=1 and ascii(mid(database(),1,1))=115#

把payload变形并且结合burpsuite可以更加快捷的获取指定信息,

如何利用burpsuite进行盲注

标签: 盲注, 堆叠注入

非特殊说明,本博所有文章均为博主原创。

上一篇 sqli-labs less43
下一篇 sqli-labs less41

评论啦~



已有 4 条评论


  1. sqli-labs第四十四关 – 0verflow's blog

    […] 具体的解题思路看42题把,无趣。 less42 […]

    回复 2020-02-29 11:02
  2. sqli-labs第四十五关 – 0verflow's blog

    […] 5.具体的操作参考第四十二关吧,传送门 […]

    回复 2020-02-29 11:13
  3. 1
    1

    1

    回复 2024-02-16 22:35
  4. 1
    1

    1

    回复 2024-02-16 22:54