为什么我挖不倒sql注入啊!
作者:@Xuno
本文为作者原创,转载请注明出处:https://www.cnblogs.com/MaoheLaoXu/p/17562127.html
背景
不知道是不是初学安全的小伙伴都和我一样,刚开始学的时候,诶挺简单啊!我咋这么聪明一学就会,靶场轻轻松松过关,到了实战根本挖不出来!!像个大笨8。为啥呢?啊哈哈哈哈,我知道,因为我就是走过这条路,所以大哥来给你撑伞来了。(本文适合小白,大佬可绕过哈哈)
一句话讲原理
SQL注入的原理估计大家都学的差不多了,我简单讲讲我对注入的理解就是一句话,用户输入的数据被当作SQL语句执行了,没了,无论哪种类型的注入,只是用户输入的数据不一样罢了,本质都是被当作SQL执行了
那为啥会有这个漏洞呢?因为开发没考虑会有人输入数据的时候去输入SQL语句。所以修复的方式也很简单,就是让开发去考虑如果有人输入数据的时候输入SQL语句就行
小白速挖注入
原理说完,最为关键的来了,我是0基础、0经验,怎么去挖???
我直接教学几个最简单的方法:
(1)一般一个站,同个参数名字的参数只尝试一次,直接单引号上手
‘
“
你就看报不报错就完了,那问题来了,什么是报错,我根本不知道报错长啥样啊??
不慌,大哥我从项目中发现的SQL注入漏洞给你们拿出几张注入报错截图,小白千万记住了,类似这种直接认定注入,无脑SQLMAP跑,等级设置为最高,跑出来了就是有注入,没跑出啦就是没。
(2)直接根据不同数据库,打一遍延时注入的语句,看到数据包延时那就是存在注入,简单粗暴的很
下面是我收集的一些注入payload:
'+and(select*from(select+sleep(5))a/**/union/**/select+1) //mysql
'/**/and/**/0=DBMS_PIPE.RECEIVE_MESSAGE('f',10) //oracle
WAITFOR DELAY '0:0:4' -- //sqlserver
' WAITFOR DELAY '0:0:5' – QWE //sybase
(3)若是懒得每一个单引号去注入,最为简单的方法,每一个数据包都直接跑SQLMAP
听起来很呆,但是确实很有效、缺点是耗时较长,不过基本能把基础注入漏洞都测完,以本人的经验,还是第一种方法靠谱且速度较快,同个参数名尝试过没有发现注入,基本这个站80%概率以上没注入了(也有例外)
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步