关于PHP的一些小技巧
...
极客大挑战2024wp--web
0x01前言极客2024没来得及比赛就结束了,所以下面的都是后面复现去做的 0x02赛题baby_uploadhint:Parar说他的黑名单无懈可击,GSBP师傅只花了十分钟就拿下了他的权限,你看看怎么绕过呢 先上传一个php文件看看 有过滤,把文件内容删掉后测试发现存在后缀名验证,先看看能不能绕过这个,后面我随便上传一个图片都显示上传失败,有点神奇 换个思路,先随便在url中传入一个路径 版本apache2.4.10,CVE-2017-15715,然后当时就复现了一下写在另一篇文章了,这里直接给payload 先上传我们的一句话木马然后抓包 12345678910111213141516171819202122232425262728293031323334353637POST /index.php HTTP/2Host: 80-74c251eb-096f-471b-ac79-241c6f54f8bc.challenge.ctfplus.cnCookie: _ga=GA1.1.143187499.1742196271;...
CVE-2017-15715漏洞复现
漏洞信息0x01漏洞描述Apache HTTPD是一款HTTP服务器,它可以通过mod_PHP来运行PHP网页。其2.4.0~2.4.29版本中存在一个解析漏洞,此漏洞的出现是由于 apache 在修复第一个后缀名解析漏洞时,用正则来匹配后缀。在解析 php 时 xxx.php\x0A 将被按照 php 后缀进行解析,导致绕过一些服务器的安全策略。 0x02影响版本Apache HTTPD 2.4.0~2.4.29 0x03漏洞分析index.php源码 12345678910111213141516171819202122232425262728293031323334<?phpif(isset($_FILES['file'])) { $name = basename($_POST['name']); $ext = pathinfo($name,PATHINFO_EXTENSION); if(in_array($ext, ['php', 'php3',...
极客大挑战2020wp--web(已做完)
web-Welcome#请求方法+sha1哈希绕过 打开是405错误,抓包后看到是Method Not Allowed 搜索后发现是请求方式错误,换成POST传参就可以拿到源码了 1234567891011121314<?phperror_reporting(0);if ($_SERVER['REQUEST_METHOD'] !== 'POST') {header("HTTP/1.1 405 Method Not Allowed");exit();} else { if (!isset($_POST['roam1']) || !isset($_POST['roam2'])){ show_source(__FILE__); } else if ($_POST['roam1'] !== $_POST['roam2'] &&...
CVE-2019-11043漏洞复现
漏洞信息漏洞描述Nginx 上 fastcgi_split_path_info 在处理带有 %0a 的请求时,会因为遇到换行符 \n 导致 PATH_INFO 为空。而 php-fpm 在处理 PATH_INFO为空的情况下,存在逻辑缺陷。攻击者通过精心的构造和利用,可以导致远程代码执行。 利用条件:nginx配置了fastcgi_split_path_info 受影响系统:PHP 5.6-7.x,Nginx>=0.7.31 那我们先来看一下nginx.conf中的具体配置 12345678910111213location ~ [^/]\.php(/|$) { ... fastcgi_split_path_info ^(.+?\.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_pass php:9000; ...} 解释一下 1fastcgi_split_path_info ^(.+?\.php)(/.*)$; 这一行将请求 URI...
记一次weblogic-10.3.6.0靶场漏洞利用
0x01前言一开始工具跑不起来,后面才发现是原先的java版本太高了,整了个java8才跑起来 0x02复现准备工具:WeblogicTool 1.2 环境靶场:http://119.45.164.136:7001/ dirsearch扫不出目录,但是看着cve的话就直接访问管理控制台了 外网探测http://119.45.164.136:7001/console/login/LoginForm.jsp 利用工具进行扫描 CVE_2016_0638_ECHO漏洞,老漏洞了 删掉端口后面多余字符,输入/uddiexplorer/ 随便在右上角找了一个图片的路径 1http://119.45.164.136:7001/uddiexplorer/help.gif 复制图片文件名 到weblogic中用命令去查找 1find ./ -name...
ctfshow月饼杯(已做完)
web1_此夜圆一江春水何年尽,万古清光此夜圆 #反序列化字符串逃逸有附件,下下来看看 1234567891011121314151617181920212223242526272829303132333435<?phperror_reporting(0);class a{ public $uname; public $password; public function __construct($uname,$password) { $this->uname=$uname; $this->password=$password; } public function __wakeup() { if($this->password==='yu22x') { include('flag.php'); echo $flag; } else { echo 'wrong...
ctfshow萌新赛(已做完)
给她#sprintf()函数绕过sql 扫目录发现git文件泄露,用Githack扒下来有一个hint.php 1234<?php$pass=sprintf("and pass='%s'",addslashes($_GET['pass']));$sql=sprintf("select * from user where name='%s' $pass",addslashes($_GET['name']));?> 这里的话用addslashes函数对传入的参数进行了一定的字符转义,但是问题是这里对name和pass都使用了这个函数,我们应该怎么去绕过这个反斜杠转义呢? sprintf()函数就是我们的突破口,毕竟这里就sprintf()函数比较特殊了嘛 先分析一下这个函数的作用 sprintf()函数sprintf() 函数是 PHP 中用于格式化字符串的一个功能强大的工具。 基础语法 1sprintf(format, arg1, arg2,...
web入门命令执行篇-ctfshow
0x01基础知识专门写了一个关于RCE和文件包含的总结,所以这里的知识点就删减掉了 2.函数1.对于PHP,以下是一些可能存在RCE漏洞的函数: PHP的system()和exec()函数:这些函数用于执行外部命令,如果未对用户输入进行适当的过滤或验证,攻击者可能利用这些函数执行任意命令。 PHP的eval()函数:该函数用于执行字符串作为PHP代码,如果未对用户输入进行适当的过滤或验证,攻击者可以利用此函数执行任意代码。 PHP的create_function()函数:该函数用于动态创建函数,如果未对用户输入进行适当的过滤或验证,攻击者可以利用此函数执行任意代码。 2.对于ASP(Active Server...
对于RCE和文件包含的一点总结
什么是RCERCE漏洞,即远程代码漏洞和远程命令执行漏洞,这种漏洞允许攻击者在后台服务器上远程注入操作系统命令或代码,从而控制后台系统。 在很多Web应用中,开发人员会使用一些特殊函数,这些函数以一些字符串作为输入,功能是将输入的字符串当作代码或者命令来进行执行。当用户可以控制这些函数的输入时(当应用程序未正确验证、过滤或限制用户输入时),就产生了RCE漏洞。 1.分类(远程代码和远程命令)1.命令执行漏洞:直接调用操作系统命令。例如,当Web应用在调用一些能将字符串转化成代码的函数时,如果未对用户输入进行合适的处理,可能造成命令执行漏洞。 2.代码执行漏洞:靠执行脚本代码调用操作系统命令。例如,PHP中的system()、exec()和passthru()函数,如果未对用户输入进行过滤或过滤不严,可能导致代码执行漏洞。 额外的: 3.系统的漏洞造成命令注入:例如bash破壳漏洞(CVE-2014-6271)是一个远程命令执行(RCE)漏洞。这个漏洞存在于Bash...