1. 程式人生 > >2018西安工業大學第二屆萌新線上賽web WP

2018西安工業大學第二屆萌新線上賽web WP

WBE

榕榕學姐的美好祝願

開啟連結

右擊,檢視頁面原始碼

得到flag

web1

開啟,發現

 右擊,檢視原始碼,在最下面發現flag

web2

開啟,檢視原始碼,沒有發現有用資訊

按F12,檢視網路,發現Cookie裡藏著flag

web3

開啟,發現是程式碼審計題

審計PHP程式碼,就是要構造$user ===gou 'xatusec'

構造payload:http://117.34.116.134:8085/xatu/web3/index.php?user=xatusec

得到flag

web4

開啟,發現

 和web3一樣,只是換成了POST方式傳參

使用火狐的hackbar傳參

得到flag

web5

開啟,發現只有一句文字:flag在一個神奇的地方!

檢視原始碼,沒有有用資訊,按F12也沒有發現有用資訊

檢視url地址,我們發現1ndex.php,將1改為i,發現又跳轉回1ndex.php

用burpsuite抓包,將1改為i,重新發請求,得到flag

web6

開啟連結

程式碼審計,百度一下,發現是變數覆蓋漏洞

題目使用了extract($_GET)接收了GET請求中的資料,並將鍵名和鍵值轉換為變數名和變數的值,然後再進行兩個if 的條件判斷,所以可以使用GET提交引數和值,利用extract()

對變數進行覆蓋,從而滿足各個條件

GET請求 ?b=&a=,extract()會將$b和$a的值覆蓋了,將變數的值設定為空或者不存在的檔案就滿足$a == $content。

得到flag

web7

開啟連結,檢視原始碼

需要傳遞name和password,同時需要name和password不相等,到這裡都很簡單

然後需要(sha1($_GET['name']) == md5($_GET['password'])

使用常規的使用者名稱密碼是無法完成的,這裡有一點是sha1無法對陣列進行處理,

如果傳入的是陣列會返回false,

這裡我們就只需要傳入兩個不同的陣列即可,既滿足使用者名稱密碼不相等,

又因為傳入的陣列導致返回的sha1和md5加密後返回false,就達到了我們的目的,

web8

開啟連結

 

 提示未經授權的使用者!

按F12,檢視網路,發現Cookie中有以下資訊

用burpsuite抓包

將user中的Z3Vlc3Q=通過base64解碼,得到guest

由頁面提示想到,將guest改為admin

將admin轉base64:YWRtaW4=

編輯重發:

顯示沒有登入

將login值改為1,重發

 得到flag

web9

開啟連線

 直接burpsuite 抓包

提示要求必須是本地客戶端

那麼,使用X-Forwarded-For:127.0.0.1進行ip偽造

 有提示可知,需要將User-Agent後面的內容修改為Xatu_Web_Broswer

web11

開啟連結,什麼都沒有,檢視原始碼

發現提示,將include1.php填入url中,仍然什麼也沒有

非常像php偽協議

 得到一串base64加密字元,解碼

<html>
</html>
<?php

	error_reporting(0);
    @$file = $_GET["file"];
    if(isset($file))
    {
        if (preg_match('/http|data|ftp|input|%00|flag/i', $file) || strstr($file,"..") !== FALSE || strlen($file)>=100 || $file==="include1" )
        {
            echo "<p> error! </p>";
        }
        else
        {
			include($file.'.php');
			setcookie("tips","include2.php");
        }
    }
	else
	{
		header('Location:include1.php?file=index');
	}
?>

發現其過濾了flag關鍵字,但是提示其中包含include2.php

得到另一串base64加密字元,解碼

<html>
</html>
<?php
error_reporting(0);
$file = $_GET["file"];
if(isset($file))
{
    if ( preg_match('/http|data|ftp|input|%00|base/i', $file) || strstr($file,"..") !== FALSE || strlen($file)>=100)
    {
        echo "<p> error! </p>";
    }
    else
    {
		include($file.'.php');
    }
}
else
{
	echo "file not found";
}
?>

發現其沒有過濾flag關鍵字,但是過濾了base關鍵字

百度了一下,可以使用rot13進行構造

發現頁面空白,檢視原始碼

得到flag:flag{5d41a03ab1b2a76b9719d911017c592}

simple_sql

開啟連結,發現是一個輸入框,檢視原始碼,發現其過濾了空格

直接使用sqlmap,sqlmap中的space2comment.py,可以繞過

sqlmap -u "http://117.34.116.134:10004/index.php?id=1" --dbms mysql --tamper "space2comment.py" -D maolaile -T adm1n -C admin --dump

得到flag

更新中...

本人菜鳥,大佬勿噴!