php-fpm(绕过open_basedir,结合ssrf)
环境的安装->https://www.cnblogs.com/zaqzzz/p/11870489.html
1.nginx的畸形访问
因为安装的是php7.0,所以需要手动修改一下(版本低的时候没有这种防护措施)
fpm里面的security.limit_extensions默认只执行.php的文件
vi /etc/php/7.0/fpm/pool.d/www.conf

把php-fpm.conf文件里面的security.limit_extensions前边的分号去掉,把值设置为空,这样就可以执行任意的文件了,也可以试试把fpm关掉。
cgi.fix_pathinfo这个参数为1的时候,访问:
ip:/*.*/.php
例如ip/1.jpg/.php,这里1.jpg的内容是<?php phpinfo();?>
因为 1.jpg/.php (把他看成一个整体)不存在,但是cgi.fix_pathinfo的原因,去掉/后边的参数,可以找到1.jpg,就会把jpg当作php执行。
执行图:

2. fpm未授权访问
原因:
fpm的9000端口暴露在公网上,其实默认文件是只有本地才可以访问的。
复现:
vi /etc/php/7.0/fpm/pool.d/www.conf
;listen=127.0.0.1:9000修改为listen=0.0.0.0:9000
复现脚本
https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75
执行
python3 fpm.py ip /var/www/html/index.php -c "<?php echo `whoami`; ?>"
为什么要选择:/var/www/html/index.php
因为security.limit_extensions默认只允许php文件执行,当然最好猜的是web目录下的index.php了,如果这个配置值为空的时候(需自己手动修改),就可以返回任意文件。
当我们手动修改security.limit_extensions为空,执行命令:
python3 test.py ip /etc/passwd
这里并不会输出passwd的内容,而是输出phpinfo()的内容,在p牛博客底下问,因为不加-c参数的时候,默认执行phpinfo();exit();,所以返回phpinfo()后exit()结束,就不会返回passwd的内容了。或者直接执行命令
python3 test.py ip /etc/passwd -c ""
修改代码:

成功读取文件:

还有个问题,如果security.limit_extensions只允许php文件执行,但是你爆破不出web的目录的话,也可以利用主机上任意的一个php文件(执行搜索: find / -name "*.php" )。
假设靶机的根目录下存在1.php
python3 fpm.py ip /1.php -c "<?php echo `whoami`; ?>"
3.fpm未授权访问存在 open_basedir 的限制
open_basedir限制了php能访问的目录
复现:
vi /etc/php/7.0/cli/php.ini
修改open_basedir的值,限制只在访问web目录下的文件

别忘了重启
发现已经不能访问根目录的1.php文件了

修改代码:
作用是修改了php的参数,可访问目录是全部目录

运行脚本,又可以继续访问了
4.ssrf+FastCgi
如果fpm不在外网开放,我们可以通过ssrf进行攻击(如果存在ssrf漏洞的地方)
vi /etc/php/7.0/fpm/pool.d/www.conf
listen=0.0.0.0:9000改为listen=127.0.0.1:9000,只允许本地访问
假设存在ssrf.php
<?php
function curl($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
}
$url = $_GET['url'];
curl($url);
?>

利用gopher协议攻击(脚本在github)

因为是get传参,所以要url编码,如果是post方式,则这一步不需要,编码使用burp来实现
burp截包,url的值改为gopher的内容,然后用burp编码

编码后

发送包,成功执行了 whoami这条命令

php-fpm(绕过open_basedir,结合ssrf)的更多相关文章
- 绕过open_basedir读文件脚本
绕过open_basedir读文件脚本 2016年11月13日 01:28:21 阅读数:1221 参加了一场2016年的sycsec感觉又学到不少东西 废话不多说,首先啥是open_basedir? ...
- php绕过open_basedir设置
原理关于open_basedir open_basedir是php.ini中的一个配置选项 它可将用户访问文件的活动范围限制在指定的区域, 假设open_basedir=/home/ ...
- php5全版本绕过open_basedir读文件脚本
这是前段时间写的代码了(http://www.weibo.com/1074745063/ByAPqj7s0),最近一直忙着和几个同学一起做非安全类的创业项目.所以也没拿到JAE.SAE测试一下. 不说 ...
- Suctf知识记录&&PHP代码审计,无字母数字webshell&&open_basedir绕过&&waf+idna+pythonssrf+nginx
Checkin .user.ini构成php后门利用,设置auto_prepend_file=01.jpg,自动在文件前包含了01.jpg,利用.user.ini和图片马实现文件包含+图片马的利用. ...
- PHP libxml RSHUTDOWN安全限制绕过漏洞(CVE-2012-1171)
漏洞版本: PHP PHP 5.5.x 漏洞描述: BUGTRAQ ID: 65673 CVE(CAN) ID: CVE-2012-1171 PHP是一种HTML内嵌式的语言. PHP 5.x版本内的 ...
- 27.【转载】挖洞技巧:如何绕过URL限制
大家对URL任意跳转都肯定了解,也知道他的危害,这里我就不细说了,过~ 大家遇到的肯定都是很多基于这样的跳转格式:http://www.xxx.xxx/xxx?xxx=http://www.xxx.x ...
- [WEB安全]绕过URL跳转限制的思路
0x00 简介 说起URL跳转漏洞,有些人可能会觉得,不就是单纯的跳转到某一个其他网页吗?有什么用??? 给大家一个链接,你们进去看一下就明白了: http://www.anquan.us/searc ...
- [转+自]关于PHP7的新特性(涉及取反和disabled_functions绕过)
PHP7和PHP5上的安全区别 preg_replace()不再支持/e修饰符 利用\e修饰符执行代码的后门大家也用了不少了,具体看官方的这段描述: 如果设置了这个被弃用的修饰符, preg_repl ...
- 通过Portwigge的Web安全漏洞训练平台,学习SSRF
前言 Portswigger是Burpsuite的官网,也是一个非常好的漏洞训练平台.其Web安全靶场地址为:https://portswigger.net/web-security/ 该靶场的训练内 ...
随机推荐
- centos禁止root用户ssh远程登录
首先,我们要以root身份登录远程主机 vim指令编辑ssh配置文件,如 vim /etc/ssh/sshd_config 查找PermitRootLogin,把yes改为no 修改完配置需要重启ss ...
- JS密码强度检测
//校验密码强度---沒有匹配到以下級別就提示 function checkPassWord(value){ // 0: 表示第一个级别 1:表示第二个级别 2:表示第三个级别 // 3: 表示第四个 ...
- 4.NIO的非阻塞式网络通信
/*阻塞 和 非阻塞 是对于 网络通信而言的*/ /*原先IO通信在进行一些读写操作 或者 等待 客户机连接 这种,是阻塞的,必须要等到有数据被处理,当前线程才被释放*/ /*NIO 通信 是将这个阻 ...
- vue作用域插槽
简而言之,作用域插槽就是让插槽内容能够访问子组件中的数据. 案例如下:有CurUser组件 <template> <span> <!-- 在slot 元素上绑定user, ...
- github安全整理
漏洞及渗透练习平台: WebGoat漏洞练习平台: https://github.com/WebGoat/WebGoat webgoat-legacy漏洞练习平台: https://github.co ...
- Linux高级网络设置——将多个网卡设置成一个网卡
Linux下可以设置网卡模式 模式0:负载均衡 模式1:主备模式,不提高网络带宽 模式3:多网卡同时发送相同的数据 准备实验环境: Redhat 6.4 企业版64位,最小化安装. 给虚拟机添加网卡 ...
- Web Api 创建及其使用
由于创建博客,我需要尝试一些新的技术,新的思路,所以我没规规矩矩的写博客,用上了诸多以前没用的东西,比如现在这个(我只是听过web api 我连 web server 都只是用过两三次/手动滑稽) 昨 ...
- Java集合--WeakHashMap
转载请注明出处:http://www.cnblogs.com/skywang12345/admin/EditPosts.aspx?postid=3311092 第1部分 WeakHashMap介绍 W ...
- unity 拿到管线权限的解决方案
自己建个cmd 传给postprocess layer camera event可以加在这个cmd上控制位置 base pass post process ui都共享这段cmd 在一开始记下back ...
- file控件选择同一文件不触发change事件和img控件不改变src的情况下图片不刷新问题解决
最近跑来前端掺和了.. file控件的问题用 inputFile.value = ''; img控件的问题,在图片后面添加一串无意义的参数即可,例如: img.src = 'file:///' + 本 ...