渗透测试之sql注入绕过技巧

在sql注入中,通常会将某些关键的字符过滤掉,以此来达到预防sql注入的目的。这时我们就可以通过某些技巧来绕过。

绕过技巧1:

这个是在某个比赛中出现的,当时并没有多少人成功绕过。

如下:

如下图:在php中写了一个正则表达式,过滤用户输入的数据。

这里的正则表达式表示当用户输入中存在: select * from时就报错。(过滤了该语句)

我们继续使用sql语句注入的话就会报错,导致sql注入失败。

在这里给大家推荐一个网站:

regex101: build, test, and debug regex :它可以将正则表达式输入,将语句输入后可以看到匹配到了语句中的哪一些部分:清楚看到过滤了select * from这部分语句。

  • 如上:\b匹配from的单词边界。
    思考:要是匹配的单词边界不是from但是同时具备from的功能不就可以绕过正则表达式的过滤了。是否存在一个东西加在from的前面和不加在from一样我们就可以绕过了。
        存在一个方法:科学计数法。(mysql支持科学计数法)

使用科学计数法进行绕过:

如下图所示:当我们在1e1前面不加逗号时查不出来,加了逗号后查出来了,同时又会多出一列数据。看到这里我们就可以知道怎么绕过了。

使用下面进行绕过:

id=-1' union select 1,group_concat(username,0x3a,password),1e1from users--+

select 1,group_concat(username,0x3a,password),1e1from users -------因为会多出一列所以我们需要将3删掉。此时我们就绕过正则表达式查询出来了数据。

绕过技巧2:
 

当使用正则表达式过滤了infromation后,我们有什么办法绕过。

解决方法:我们只需要找到与information库有类似作用的库就可以。

注意:以sys开头的只有root才能访问。不过一般情况下为root的可能性很小。

总结:这两个技巧是我们常用的技巧,当某一个我们需要使用的东西被过滤后我们就需要去思考是否可以去找个替代它。

相关推荐

  1. SQL注入技术

    2024-05-01 00:20:02       34 阅读
  2. 过滤空格的 SQL 注入

    2024-05-01 00:20:02       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-01 00:20:02       17 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-01 00:20:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-01 00:20:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-01 00:20:02       18 阅读

热门阅读

  1. pytest.ini配置文件

    2024-05-01 00:20:02       11 阅读
  2. Three CSS2D 渲染器 月球绕地球旋转

    2024-05-01 00:20:02       12 阅读
  3. 华为鸿蒙HarmonyOS应用开发者高级认证答案

    2024-05-01 00:20:02       13 阅读
  4. Github 2024-04-24 C开源项目日报 Top9

    2024-05-01 00:20:02       12 阅读
  5. LeeCode 1728 任意图上博弈

    2024-05-01 00:20:02       12 阅读
  6. 爬虫 - 基于requests进行二次开发

    2024-05-01 00:20:02       12 阅读
  7. 算法训练营day28

    2024-05-01 00:20:02       14 阅读
  8. php变量创建和定义规则和常见常量

    2024-05-01 00:20:02       12 阅读
  9. 【设计模式】13、template 模板模式

    2024-05-01 00:20:02       10 阅读