记一次PHP代码审计拿下CNVD

本篇文章作者幽壑,本文属i春秋原创奖励计划,未经许可禁止转载。
https://bbs.ichunqiu.com/thread-63544-1-1.html

记一次PHP路由审计

工具:Seay源代码审计系统

0x1 反射型xss

首先进行一个自动化扫描,根据结果进行跟进排查
image

跟进/user/tpl/_user_import.php文件
image

可以看到直接输出了多个参数echo $useripcw,echo $cfusername,echo $cfuserip,echo $cfusermac,没什么过滤
我们这里直接传入一个xss语句触发xss
image

0x2 SQL注入漏洞

image

跟进/gauserreg/edit_rzfjb.php

<?php require_once("../session.php"); require_once('../funlist.php'); require_once('../global.func.php'); conn(); if(isset($_GET['id'])) { $get_id = $_GET['id']; } if(isset($_POST['hid_id'])) { $get_id = $_POST['hid_id']; } $sql = "select * from tb_Web_Addition where id = $get_id"; $result = mysql_query($sql); $data = @mysql_fetch_array($result); $name = $data['name']; //echo $name; $sex = $data['sex']; $type = $data['type']; $certificate_no = $data['certificate_no']; $check_in_time = $data['check_in_time']; $web_id = $data['web_id']; require_once("tpl/_edit_rzfjb.php"); ……

通过get或者post方式获得get_id参数,直接带入了查询
构造sql语句/gauserreg/edit_rzfjb.php?id=1%20union%20select%201,2,3,4,5,6,(select%20group_concat(SCHEMA_NAME)%20from%20information_schema.SCHEMATA),8

select 1 union select 1,2,3,4,5,6,(select group_concat(SCHEMA_NAME) from information_schema.SCHEMATA),8 from tb_Web_Addition where id = $get_id"

image

0x3 文件上传getshell

一处文件上传,代码如下

…… if(isset($_POST['uppictxt'])) { if($_FILES['upfile']['tmp_name']) { $file_upload = $_FILES['upfile']['tmp_name']; $file_upload_name = $_FILES['upfile']['name']; if(!file_exists("/jffs2/webauth/img")) { exec("mkdir -p /jffs2/webauth/img/"); } chdir("/jffs2/webauth/img/"); if(!copy($file_upload,"/jffs2/webauth/img/$file_upload_name")) { alert($LANG_OPT_FAILD,"edit_alive.php"); exit(); } } $uploadfile = true; ……

检测images目录是否存在,不存在则创建目录
然后将上传的文件保存到/jffs2/webauth/images/$file_upload_name目录

image

上传post.php文件
访问上传的shell文件
image

0x4 前台RCE

在进行阅读代码时发现一个疑似后门的文件

if(isset($_POST['previewtxt'])) { $index = $_POST['previewtxt']; $index = str_replace("&lt;","<",$index); $index = str_replace("&gt;",">",$index); $index = stripslashes($index); $fp = fopen("/usr/hddocs/nsg/template/___index.php","w"); fwrite($fp,$index); fclose($fp); ……

该文件通过fwrite将传入的参数写入了/usr/hddocs/nsg/template/_index.php
文件
尝试写入一句话木马
image

访问小马验证执行
image

关于CNVD要求
1、为中危及以上,评分大于4.0
2、注册资产大于5000万
3、并且测试案例要大于10,并且写出至少3例完整复现过程


image
image


__EOF__

本文作者LinkPoc
本文链接https://www.cnblogs.com/Y0uhe/p/17324779.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   LinkPoc  阅读(89)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示