首页 > TAG信息列表 > ssrfme
[HITCON 2017]SSRFme pathinfo()返回一个数组&Linux命令Perl漏洞(后面加一个|可以命令执行)
进去一个代码审计: x.x.x.x <?php if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $http_x_headers = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $_SERVER['REMOTE_ADDR'] = $http_x_headers[0]; }[HITCON 2017]SSRFme 未完
知识点: 1.pathinfi()函数会返回一个数组,关于文件路径的信息 返回的数组元素如下: [dirname]: 目录路径 [basename]: 文件名 [extension]: 文件后缀名 [filename]: 不包含后缀的文件名 代码例子: <?phpprint_r(pathinfo("/test1/test2/test.txt"));?> 运行结果: Array([HITCON 2017]SSRFme 1
1.发现 1.1题目提示ssrf,打开地址发现代码. 2.步骤 1.1直接开始代码审计. <?php if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { #_SERVER:服务器和执行环境信息 $http_x_headers = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); #explode:把字符串打散为数组 .hitcon_2017_ssrfme
hitcon_2017_ssrfme 进入环境给出源码 <?php if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $http_x_headers = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $_SERVER['REMOTE_ADDR'] = $http_x_headessrfme
查看源码 <?php if(isset($_GET) && !empty($_GET)){ $url = $_GET['file']; $path = "upload/".$_GET['path']; }else{ show_source(__FILE__); exit(); } if(strpos($path,'..') > -1){ die(bmzctf 刷题 hitcon_2017_ssrfme
bmzctf 刷题 hitcon_2017_ssrfme 这道题有两种解法! 直接上源码: <?php $sandbox = "sandbox/" . md5("orange" . $_SERVER["REMOTE_ADDR"]); @mkdir($sandbox); @chdir($sandbox); $data = shell_exec("GET " . escapeshelbmzctf刷题ssrfme
bmzctf刷题 ssrfme 考点:ssrf 本来我还想docker逃逸的,但是未成功[BMZCTF]-hitcon_2017_ssrfme
[BMZCTF]-hitcon_2017_ssrfme 依旧是直接给出题目源代码 这里列一下几个用到的函数吧 file_put_contents — 将一个字符串写入文件 pathinfo — 返回文件路径的信息 escapeshellarg — 把字符串转码为可以在 shell 命令里使用的参数 shell_exec — 通过 shell 环境执行命令,