01view_source
方法:在下用的firefox,滑鼠右鍵可查看頁面源代碼,試了試不行,那么F12,即可得到,
識訓:滑鼠右鍵不能用,與前端函式有關,在該頁面中我們可以發現有這兩個函式,
![]()
1. document.oncontextmenu=new Function("return false") //是右鍵選單禁用;
2. document.onselectstart=new Function("return false") //是禁止選中頁面上的內容;
3. document.onselectstart=new Function("return false")//是禁止復制在頁面上選中的內容;(補充)
02get_post
HTTP通常的兩種請求方法是get和post.
方法一:首先進入容器會看到
![]()
那么就在url后加上?a=1,然后得到
,
這時有三種方法:1.用firefox插件Max HacKBar,
,得到flag;
方法二:用burp抓包,send to repeater,加上b=2 send,得到flag;
方法三:不用插件,
,某位大佬的,在查看器中進行如圖修改,即可得到flag,
03robots
方法:在url后加上robots.txt,會得到
,然后訪問flag_1s_h3re.php,即可得到flag,
識訓:當一個搜索機器人(有的叫搜索蜘蛛)訪問一個站點時,它會首先檢查該站點根目錄下是否存在robots.txt,如果存在,搜索機器人就會按照該檔案中的內容來確定訪問的范圍;如果該檔案不存在,那么搜索機器人就沿著鏈接抓取,并且,robots.txt必須放在一個站點的根目錄下,而且檔案名必須是小寫,robots.txt就是告知搜索引擎哪些是允許訪問的,哪些是不想被搜索引擎收錄的,如果您希望搜索引擎收錄網站上所有內容,請勿建立robots.txt檔案,但是,robots.txt不是防火墻,不能阻止訪問,
04backup
方法:在url后加上Index.php.bak,訪問,在f12中,即可得到flag.
識訓:常見的備份檔案后綴名有:.git .svn .swp .bak .bash_history .~
php的備份有兩種:*.php~和*.php.bak, 這道題也可以用py腳本解決,掃目錄,即可得到地址,也可以用御劍掃描進行解決,
05cookie
分析:
首先會看到這個,然后f12查看,cookie,
,然后就在url后加上cookie.php,訪問,看到
,提示我們在回應頭里,
方法一:burp抓包,并send to repeater,而后send,在回應頭里即可得到flag,
方法二:firefox,訪問http://220.249.52.133:54804/cookie.php,f12,在網路一欄中,可看到訪問cookie.php的資料包,
識訓:Cookie是當主機訪問Web服務器時,由 Web 服務器創建的,將資訊存盤在用戶計算機上的檔案,一般網路用戶習慣用其復數形式 Cookies,指某些網站為了辨別用戶身份、進行 Session 跟蹤而存盤在用戶本地終端上的資料,而這些資料通常會經過加密處理,
06disabled_button
方法一:打開后,發現
,f12,在查看器一欄中,將disabled改為abled或直接將disabled=""洗掉,然后按鈕就可以點了,點擊即可得到flag.
方法二:審計form表單代碼,post傳值auth=flag,也可以得到flag.
(但是我在用Burp實作的時候卻無法成功,如下圖),如果哪位大佬懂的話,希望在評論區指點小弟下,
識訓:html的相關標簽及相應的屬性
07weak_auth
題目簡介:打開后
,如圖
需要輸入賬號和密碼,然后隨便輸入,會出現彈窗(please login as admin)在f12發現
方法:burp爆破,配置好之后,打開,抓包,send to Intruder,
然后設定爆破點為password:將admin兩邊的$去掉,將password的值兩邊加上$.

加載字典,load加載字典,然后開始爆破

發現,密碼為123456時length不一樣,于是在回應包里得到flag,

識訓:burp的爆破功能,以及用Python,c++創建字典的方法.
08command_execution
題目:小寧寫了個ping功能,但沒有寫waf,X老師告訴她這是非常危險的,你知道為什么嗎,
waf,web應用防火墻,Web應用防火墻是通過執行一系列針對HTTP/HTTPS的安全策略來專門為Web應用提供保護的一款產品,所以本題環境沒有waf,

方法一:1.在文本框內輸入127.0.0.1 | find / -name "flag.txt" ,查找flag所在位置
2.在文本框內輸入 127.0.0.1 | cat /home/flag.txt 可得到flag
方法二:1.在文本框中輸入127.0.0.1 && ls 查看當前目錄下的檔案

2.輸入127.0.0.1 && ls../ 查看上一級目錄

3.輸入127.0.0.1 && ls../../ 查看上一級目錄

4.輸入127.0.0.1 && ls../../../ 查看上一級目錄,發現有個home的檔案,不妨打開看看

5.輸入127.0.0.1 && ls ../../../home 查看該檔案,發現flag.txt

6.輸入127.0.0.1 && cat ../../../home/flag.txt 打開該檔案,

方法三:requests庫,這是xctf平臺某位大佬的解題方法,同時requests庫的相關使用參見這位大佬的requests庫基本使用 和這位大佬的Python-第三方庫requests詳解 ,個人感覺收益頗豐,

識訓:
| 的作用為將前一個命令的結果傳遞給后一個命令作為輸入
&&的作用是前一條命令執行成功時,才執行后一條命令
還有相關指令要學習,find ,cat ,ls 等指令,
09simple_php
<?php
show_source(__FILE__);
include("config.php");
$a=@$_GET['a'];
$b=@$_GET['b'];
if($a==0 and $a){
echo $flag1;
}
if(is_numeric($b)){
exit();
}
if($b>1234){
echo $flag2;
}
?>
題目:打開后出現如下代碼,
進行代碼審計:1.get傳參給$a和$b,如果$a==0 且 $a ,則回傳$flag1;
2.is_numeric()函式,如果$b是數字或者數字字串,則回傳ture,exit()執行;否則,并且$b>1234
,則回傳$flag2;
3.這里要注意一點,php語言是弱型別比較,php中有兩種比較符號
=== 會同時比較字串的值和型別;
== 會先將字串換成相同型別,再作比較,屬于弱型別比較;
所以如果$a=string(string是任意字串),則‘string’==0為真;
$b=12ss,則‘12ss’==12為真,
方法一:回傳flag1. url后加上index.php?a=string (string為任意字串),得到flag1的一半,還有半截未顯示出來
<?php
show_source(__FILE__);
include("config.php");
$a=@$_GET['a'];
$b=@$_GET['b'];
if($a==0 and $a){
echo $flag1;
}
if(is_numeric($b)){
exit();
}
if($b>1234){
echo $flag2;
}
?>
Cyberpeace{647E37C7627CC3E401
在url后加上index.php?a=0&b=1235a,得到flag1的另一半(別問我咋知道的,瞎試試出來的,現在還沒搞懂,懂的大佬可在評論區指點一下)
<?php
show_source(__FILE__);
include("config.php");
$a=@$_GET['a'];
$b=@$_GET['b'];
if($a==0 and $a){
echo $flag1;
}
if(is_numeric($b)){
exit();
}
if($b>1234){
echo $flag2;
}
?>
9EC69324F66C7C}
方法二:回傳flag2. url后加上index.php?a=string&b=1235a (string為任意字串),得到flag2.
<?php
show_source(__FILE__);
include("config.php");
$a=@$_GET['a'];
$b=@$_GET['b'];
if($a==0 and $a){
echo $flag1;
}
if(is_numeric($b)){
exit();
}
if($b>1234){
echo $flag2;
}
?>
Cyberpeace{647E37C7627CC3E4019EC69324F66C7C}
10xff_referer
題目:描述及打開后看到的


方法一:burp抓包,send to repeater,將X-Forwarded-For添加進去(注意位置),得到如下圖

由圖知,https要設定,于是再將Referer:https://www.google.com 插入進去,得到flag.

識訓:
X-Forwarded-For:簡稱XFF頭,它代表客戶端,也就是HTTP的請求端真實的IP,只有在通過了HTTP 代理或者負載均衡服務器時才會添加該項
HTTP Referer是header的一部分,當瀏覽器向web服務器發送請求的時候,一般會帶上Referer,告訴服務器我是從哪個頁面鏈接過來的.
11webshell
這個題的相關資料:
新手區webshell
12simple_js
題目:打開后,就讓我輸密碼,隨便輸入,出現彈窗,查看源代碼,javascript里面有一段代碼如下,
function dechiffre(pass_enc){
var pass = "70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65";
var tab = pass_enc.split(',');
var tab2 = pass.split(',');var i,j,k,l=0,m,n,o,p = "";i = 0;j = tab.length;
k = j + (l) + (n=0);
n = tab2.length;
for(i = (o=0); i < (k = j = n); i++ ){o = tab[i-l];p += String.fromCharCode((o = tab2[i]));
if(i == 5)break;}
for(i = (o=0); i < (k = j = n); i++ ){
o = tab[i-l];
if(i > 5 && i < k-1)
p += String.fromCharCode((o = tab2[i]));
}
p += String.fromCharCode(tab2[17]);
pass = p;return pass;
}
String["fromCharCode"](dechiffre("\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30"));
h = window.prompt('Enter password');
alert( dechiffre(h) );
開始代碼審計:簡化后,就是有個16進制的字串"\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30",將其轉為10進制,然后根據ASCII碼表對應的字符進行轉化,得到flag,
方法:python

識訓:
1.fromCharCode()函式
var n = String.fromCharCode(65);
輸出結果: A
2.16進制字串轉10進制,python直接輸出
3.數字轉字串,用遍歷,chr()函式:將陣列轉為相應的ASCII碼字符,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/185174.html
標籤:其他
下一篇:云服務器建站選擇
