目录
下面的操作基于实验和实操
0 安装和配置DVWA
0.0 下载并安装PHPstudy
略,直接百度安装,这里安装的是小皮的版本。
0.1 下载DVWA源码并载入
0.1.0 下载DVWA源码
链接: https://github.com/digininja/DVWA
Windows情况下直接下载zip就行,如果有人习惯用git-clone啥的另说,记得写到指定的文件夹里。
0.1.1 载入
将解压后的DVWA源代码放置在phpstudy安装目录的WWW文件夹
解压完成就是载入完成
改了一下名字变成了
D
V
W
A
DVWA
DVWA
0.2 配置DVWA
在 / c o n f i g /config /config目录里将 c o n f i g . i n c . p h p . d i s t config.inc.php.dist config.inc.php.dist的.dist删去,然后更改一下user和password,都改成root,这个主要是phpstudy的原因。
如果sql启动不行的话,那么可以换个端口看看,在 c o n f i g config config里同样要改 p o r t port port,默认的3306端口有可能会被其他应用占用。
创建完database之后,在登录之后,就有下面的画面,这说明已经把DVWA弄好,可以使用了。
0.3 六步搭建DVWA
这是课程里原版的六步骤搭建DVWA
1.下载并安装PHPstudy
2.将DVWA的源代码放置在phpstudy安装目录的WWW文件夹
3.在
D
V
W
A
/
c
o
n
f
i
g
DVWA/config
DVWA/config目录中,将
c
o
n
f
i
g
.
i
n
c
.
p
h
p
.
d
i
s
t
config.inc.php.dist
config.inc.php.dist的
.
d
i
s
t
.dist
.dist删去
4.打开
c
o
n
f
i
g
.
i
n
c
.
p
h
p
config.inc.php
config.inc.php文件,修改db_user和db_password
5.浏览器访问127.0.0.1/DVWA/setup.php,点击页面最下方的Create Database
6.浏览器访问127.0.0.1/DVWA/,输入用户名admin,密码password登录dvwa
1 命令行执行漏洞(Command Injection)
1.0.0 命令连接符号
cmd1|cmd2:无论cmd1是否执行成功,cmd2将被执行
cmd1;cmd2:无论cmd1是否执行成功,cmd2将被执行
cmd1&cmd2:无论cmd1是否执行成功,cmd2将被执行
cmd1||cmd2:仅在cmd1执行失败时才执行cmd2
cmd1&&cmd2:仅在cmd1执行成功后才执行
1.0.1 常用cmd命令
whoami 查看当前用户名
ipconfig 查看网卡信息
shutdown -s -t 0 关机
net user [username] [password] /add 增加一个用户名为username密码为password的新用户
type [file_name] 查看filename文件内容
1.1.0 总结
没啥大用,很容易完成impossible,主要就是ping命令中混入其他的命令。
2 sql执行漏洞(SQL Injection)
2.0.0 古老的sql注入
sql注入和命令行注入有类似的地方,都是在设计程序当中忽略了字符检查,在正常的数据库语言中混入了其他恶意指令被数据库服务器误认为正常的SQL指令而运行。
2.0.1 sql语言补充
已经熟悉学过sql语言,用联合查询,union。但是在注入的输入中,末尾加上一个“#”, “#” 的作用是忽略程序中原本在后面设置的sql语句。
手操版本的写法这里就不写了。
2.1 sqlmap的用法
首先要有python环境,没有的官网装也很快。
在安装目录文件夹中打开cmd窗口
2.1.1 自动检测网站是否有sql注入漏洞
python sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/?id=&Submit=Submit#" --cookie="PHPSESSID=01o3fmc77otun8tblmnbkfq6ja; security=low"
因为有登录页面,有cookie的存在,所以要自己找一下cookie。
可以看到结果是有sql注入漏洞的。
2.1.2 利用sql注入漏洞
python sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/?id=&Submit=Submit#" --cookie="PHPSESSID=01o3fmc77otun8tblmnbkfq6ja; security=low"
在这条命令后面附加命令就可以利用
–dbs 查看数据库
-D dvwa 选择dvwa数据库
-T users 选择users表
–colums 列出表格中的列名
–dump 读取数据
sqlmap里自带一个爆破的字典,但是估计因为时间太久了,都渗透成筛子了(没啥用了),试了一下dvwa,能用。