如何快乐地检测SQL注入
这估计大家也都发现了,测试SQL注入这种漏洞啊,又有WAF页面又没有明显的报错的情况下, 测试起来就是一个字,烦。
有waf:
我 and 1=1, 啪,它拦了。
我 order by, 啪,它拦了。
我 sleep(5), 啪,它拦了。
我 benchmark(50000000,MD5(1)), 啪,它又拦了。
页面不报错:
我 插入一个' 符号, 啪, 返回码还是200,不仅不报sql语句的错误,比如SQL syntax error near这种,连通用错误都不报,比如返回一个500响应码啥的。 只有一个空的响应,但我不知道是因为我插入了' 导致代码执行异常然后被错误处理程序处理了返回了一个空响应还是因为数据库压根没这个数据返回了一个空响应。当然,有时候也不是空响应,而是返回的页面的发生的微小的变化, 需要你放大眼睛才能看见
所以就有这么一个情况,有的人吧,他学了很多sql注入语句,但一开始测试 一被waf拦或者页面没有明显报错信息就不知道咋办了。懵了,那怎么办呢。
所以我想了几分钟,终于发现一个比较适合测试SQL注入的方法。
我敢说啊,这个方法绝对让你感到震惊和意外。
简单来说,就是不依赖插入荷载导致页面差异来判断,而是依赖插入荷载页面是不是还是一样来判断。
不需要' and 1=1 然后 ' and 1=2这种,而是更骚气的操作。
简称页面一致流。
因为这样的操作不仅不容易被WAF检测,还能高效判断是不是可能有注入。
废话不多说,下面进入实例讲解。
我去搜了我h1的报告,我发现只有一个sql的漏洞,还是重复的。我打开一看发现已经修复了。
这有问题吗? 没有问题
因为我还可以用靶场。而且就算没修复,万一打码不严谨,导致意外事情发生,那不就脸黑了。
所以这叫啥,这叫紧急避险。
虽然我挖sql注入实战经验不多, 但影响我吹牛逼吗? 不影响,为啥呢,因为我会吹。
所以用靶场来演示有关系吗?没有关系。因为实战我也挖不到。
用这个靶场
https://portswigger.net/web-security/sql-injection/blind/lab-conditional-responses
咋操作呢。
第一步, 当然是先确定我们的输入能不能影响页面。
输入一个fake
很明显,影响了,一个有Welcome back!,一个没。
然后呢,然后很简单,插入一个荷载,然后页面还有Welcome back!,我就认为是有注入的。
插入的荷载要根据具体情况具体构造。
比如这里,TrackingId的值为c7oeRGoH7RkYYQzC, 给c7oeRGoH7RkYYQzC 变形一下。
c7'||'oeRGoH7RkYYQzC
c7' 'oeRGoH7RkYYQzC
c7'%2b'oeRGoH7RkYYQzC
上面的荷载无论哪个返回了和c7oeRGoH7RkYYQzC 一样的页面, 都可以怀疑是有注入,
为啥是这样3个荷载,很简单, 因为是我从这里抄来的。
代表了4种数据库连接字符串的方式。
那么直接公布答案, 这里是c7'||'oeRGoH7RkYYQzC返回了一样的页面。
所以后端要么是Oracle数据库,要么是PostgreSQL
那么能证明存在注入了吗, 当然
不能
废话, 当然不能了,万一代码被特殊符号直接过滤掉了,啥特殊符号通通去掉。c7'||'oeRGoH7RkYYQzC
特殊符号去掉以后还是c7oeRGoH7RkYYQzC。那页面不还是一样嘛。
那有办法判断吗。
简单, ez ,
c7oeRGoH7RkYYQzC 变成c’7oeRGoH7RkYYQzC
c7oeRGoH7RkYYQzC 变成c|7oeRGoH7RkYYQzC
这样测一下,就知道特殊符号有没有过滤了,只要页面不一样,就说明没被过滤。注意,是不一样啊,
至于为啥,自己想想。那这样就能判断有注入了吗? 当然
不能
废话, 当然不能了,万一代码里面遇到特性符号就报错,一报错就跳到错误处理,错误处理一处理完就返回一个默认值。那页面还是不一样, 这跟注入半毛钱关系没有。那这样测试有啥用,有用,但不是决定性作用,我就是玩,就是好玩。哪怕看起来像是注入,其实也不一定是注入。因为穿裙子的不一定是妹子,还可以是女装大佬。
前面说到,能满足c7'||'oeRGoH7RkYYQzC的,后端要么是Oracle数据库,要么是PostgreSQL。
那么试一下下面两个。
c7'||'oeRGoH7RkYYQz'||to_char('C')||'
c7'||'oeRGoH7RkYYQz'||cast('C'+as+text)||'
如果第一个荷载导致页面一致,那数据库就是Oracle,
如果第二个荷载导致页面一致,那数据库就是PostgreSQL
别问我从哪里知道这些函数的,我从这里复制粘贴过来的。从不生产知识,只是知识的搬运工。
那么这时候可以确定有sql 注入了吗? 也许,可能,大概吧。因为话不能说得太满。
不然这叫什么? 这叫打脸。
有人可能想问,如果to_char和cast被waf ban了,咋办,我咋知道咋办,凉拌。
你发现一个可能存在注入的点, 你直接发给一个注入大触手,让他帮你利用,然后啪地一声,几千刀到手,
这叫什么, 这叫抓住机会。当然这波可能真的是你判断错误, 这真不是一个注入点, 那有关系吗,没有关系。敢想敢测, 才叫挖洞嘛。所以有两个字非常关键,配合。他没时间找可疑的漏洞点,你有时间找可疑的漏洞点,没法深入利用,这就叫配合。你看了这个文章,想要自己找到一个注入,然后发现这个网站10年的间就出现了两个注入的案例,这有关系吗,没有关系。为啥呢,因为你快乐。
可能还有人想问,这是字符型的注入,那数字型的咋弄,前面不是说了嘛,具体情况具体分析,发挥
你的想象力,你肯定可以自己构造的, 这有问题吗?没有问题。
那这个方法就没有缺点吗? 废话, 肯定有啊。 我想出来的办法必须有缺点, 没缺点我还不想。有两个缺点,第一个缺点呢很容易产生误报,别问,懂的都懂。第二个缺点呢,有一种情况死活检测不到,
这个我也不说,因为懂的都懂。
这叫啥,又误报又漏报。
这有关系吗,没有关系,为啥呢,因为你不会触发大部分waf, 所以你很快乐。
因为检测过程简单无脑, 所以你很快乐, 快乐就完事,不要想那么多头发容易变秃的操作。
如何快乐地检测SQL注入相关推荐
- mysql监测攻击_如何检测SQL注入技术以及跨站脚本攻击
展开全部 在最近两年中,安全专家应该对网络应用层的攻击更加重e69da5e887aa62616964757a686964616f31333339666164视.因为无论你有多强壮的防火墙规则设置或者非 ...
- 【转载】用Snort巧妙检测SQL注入和跨站脚本攻击
脚本攻击是最近网络上最疯狂的攻击方法了,很多服务器配置了先进的硬件防火墙.多层次的安全体系,可惜最后对80端口的SQL注入和跨站脚本攻击还是没有办法抵御,只能看着数据被恶意入侵者改的面目全非而毫无办法 ...
- Sqlmap速查表/功能移植/Python批量检测SQL注入
title: Sqlmap速查表与Python进行功能移植 copyright: true top: 0 date: 2021-02-27 11:59:00 tags: [扫描注入,注入,sqlmap ...
- 漏洞检测~SQL注入
注:转载请注明出自:https://blog.csdn.net/qq_36711453/article/details/78734503 漏洞成因: SQL注入主要存在于动态网站的web应用中,攻击者 ...
- 手工检测SQL注入漏洞
SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,具体来说,它是利用现有应用程序将(恶意的)SQL命令注入到后台数据库引擎执 ...
- sqlmap工具基本使用(检测sql注入)
sqlmap的用户手册: sqlmap是python2进行运行的,如果要直接使用,需要把sqlmap设置到环境变量中: sqlmap主要用于sql注入方面的异常检测 Mysql数据库 1.先检测是否可 ...
- 使用sqlmap检测sql注入漏洞
一. sql注入概述并安装sqlmap漏洞查看工具 1. sql注入概述 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命 ...
- sqlmap注入教程linux,Linux Sqlmap检测sql注入漏洞工具安装使用教程
Sqlmap工具 什么是SQLmap? SQLmap是一款用来检测与利用SQL注入漏洞的免费开源工具,有一个非常棒的特性,即对检测与利用的自动化处理(数据库指纹.访问底层文件系统.执行命令) sql注 ...
- sqlmap检测sql注入漏洞
sqlmap是一个开源的渗透测试工具,可以用来进行自动化检测,利用SQL注入漏洞,获取数据库服务器的权限.它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数 ...
- python sql注入检测_在源代码中检测SQL注入
不确定这将如何与其他包进行比较,但在某种程度上,您需要解析传递给cursor.execute的参数.这段pyparsing代码寻找:使用字符串插值的参数 使用字符串与变量名串联的参数 只是变量名的参数 ...
最新文章
- 面试90%都会翻车的高可用+高并发+负载均衡架构设计 !
- 5分钟搞定开机引导界面
- 突破领域边界,探索文创文保新趋势
- [软件测试airtest软件安装]——填坑
- 前端安全配置之Content-Security-Policy(csp)
- Extjs4开发中的一些问题
- postgre sql安装时忘记之前密码时如何处理。
- send anywhere:一个全平台的文件传输神器
- Moodle安装完全手册
- thinkphp5实战系列(二)前台模板的引入
- matlab中用plot函数绘制的常用设置以及五点三次平滑法的实现
- 深耕ElasticSearch - 认识搜索引擎的索引
- 英特尔的Linux Xe内核图形驱动程序
- 视频剪辑工具:剪映专业版 for Mac
- Word文档修复实战
- 双重差分模型python包_什么是双重差分模型(difference-in-differences model)?
- SQL 流水账余额查询
- Packet Tracer - 在 VTY 线路上配置 ACL
- 晴天的魔法乐园——自然数分解之最大积(深度优先+剪枝)
- 域名注册使用,的坑。