ssrf攻击fastcgi复现及环境搭建 – 作者:asuralinmo

环境搭建

这里我本来用的php版本是7.4,结果怎么试都不行

直到搜索到ph师傅的这篇文章 的评论区有人指出7.4貌似不行

https://www.leavesongs.com/PENETRATION/fastcgi-and-php-fpm.html
图片.png

之后换了7.2版本的成功复现

docker run -it --name t1 -p 127.0.0.1:12313:80 ubuntu
先docker 起一个干净的ubuntu

图片.png这里可以看到端口已经成功映射过来了

然后可以看下我的history

root@1c1a96f5d950:/# history
    1  ls
    2  apt install nginx
    3  apt update
    4  apt install nginx
    5  /etc/init.d/nginx start
    6  ls
    7  apt install php7.2
    8  apt list
    9  apt list | grep php
   10  apt-get install software-properties-common python-software-properties
   11  apt install software-properties-common
   12  add-apt-repository ppa:ondrej/php && sudo apt-get update
   13  add-apt-repository ppa:ondrej/php && apt-get update
   14  apt install php7.2
   15  apt install php7.2-fpm php7.2-mysql php7.2-curl php7.2-json php7.2-mbstring php7.2-xml  php7.2-intl
   16  cd /etc/nginx/
   17  ls
   18  cd sites-available/
   19  ls
   20  apt install vim
   21  ;ls
   22  ls
   23  vim default
   24  cd /var/www/html/
   25  ls
   26  echo "<?php phpinfo();?>" > phpinfo.php
   27  vim 1.php
   28  ls
   29  /etc/init.d/php7.2-fpm status
   30  /etc/init.d/php7.2-fpm start
   31  /etc/init.d/apache2 stop
   32  /etc/init.d/apache2 status
   33  /etc/init.d/nginx status
   34  cd /etc/nginx/
   35  ls
   36  cd sites-available/
   37  ls
   38  vim default
   39  ls
   40  mv default 123
   41  ls
   42  vim default
   43  /etc/init.d/nginx stop
   44  /etc/init.d/nginx start
   45  cd ..
   46  ls
   47  cd ..
   48  sl
   49  ls
   50  cd php/7.2/
   51  ls
   52  cd fpm/
   53  ls
   54  cd conf.d/
   55  ls
   56  cd ..
   57  ls
   58  cd pool.d/
   59  ls
   60  mv www.conf 123
   61  ls
   62  vim www.conf
   63  ls
   64  ls -al
   65  /etc/init.d/php7.2-fpm stop
   66  /etc/init.d/php7.2-fpm start
   67  history
   68  exit
   69  ls
   70  /etc/init.d/nginx start
   71  /etc/init.d/php7.2-fpm start
   72  history

简单解释几下,先增加一些其他的源,然后down下来php7.2以及他的一些扩展,还有nginx
修改nginx,和php-fpm的配置文件

主要配置文件修改的就是这几个地方

fpm的www.conf文件
listen = 127.0.0.1:9000

nginx的default文件
fastcgi_pass 127.0.0.1:9000;

然后在/var/www/html目录下创建

phpinfo.php
1.php
<?php
highlight_file(__FILE__);
$url = $_GET['url'];
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, 0);
$responseText = curl_exec($curl);

echo $responseText;
curl_close($curl);
?>

开始攻击

很明显的ssrf漏洞了

http://127.0.0.1:12313/1.php?url=http://www.baidu.com

可以成功返回百度页面

利用gopher协议去伪造请求

利用Gopherus-master工具生成exp
图片.png

图片.png
可以看到成功执行命令了

后记

分享一段话
图片.png
文字来源于参考链接

https://bbs.ichunqiu.com/thread-58455-1-1.html

@W4rnIn9师傅说过的

参考

https://bbs.ichunqiu.com/thread-58455-1-1.html

来源:freebuf.com 2021-05-29 20:42:55 by: asuralinmo

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论