banner
肥皂的小屋

肥皂的小屋

github
steam
bilibili
douban

tinyctf-2014-NaNNaNNaNNaN-Batman-writeup

  • 為什麼要寫 2014 年的題的 writeup:因為在做某 CTF 訓練平台的題

首先題目給了一個附件,叫做 web100.zip,解壓後就是一個 web100 文件

記事本打開是這樣的:

image

大部分看得懂,大部分是框框,看到有 script,function 字樣,猜測是 php 代碼,拖到瀏覽器中看一看:

image

一個輸入框,此時看到末尾是一個執行的 eval 函數:

image

我們把它改為顯示 alert 再拖進來看看:

image

欸,亂碼沒了,得到了 php 源代碼:

function $(){var e=document.getElementById("c").value;if(e.length==16)if(e.match(/^be0f23/)!=null)if(e.match(/233ac/)!=null)if(e.match(/e98aa$/)!=null)if(e.match(/c7be9/)!=null){var t=["fl","s_a","i","e}"];var n=["a","_h0l","n"];var r=["g{","e","_0"];var i=["it'","_","n"];var s=[t,n,r,i];for(var o=0;o<13;++o){document.write(s[o%4][0]);s[o%4].splice(0,1)}}}document.write('<input id="c"><button onclick=$()>Ok</button>');delete _

我們用工具格式化一下:

image

function $(){
	var e=document.getElementById("c").value;
	if(e.length==16)if(e.match(/^be0f23/)!=null)if(e.match(/233ac/)!=null)if(e.match(/e98aa$/)!=null)if(e.match(/c7be9/)!=null){
		var t=["fl","s_a","i","e}"];
		var n=["a","_h0l","n"];
		var r=["g{","e","_0"];
		var i=["it'","_","n"];
		var s=[t,n,r,i];
		for (var o=0;o<13;++o){
			document.write(s[o%4][0]);
			s[o%4].splice(0,1)
		}
	}
}
document.write('<input id="c"><button onclick=$()>Ok</button>');
delete _

代碼意思很簡單,用一個正則表達式,只要輸入的字串以be0f23開頭,以e98aa結尾,中間含有233acc7be9字串就會執行下面的函數,那麼我們構造be0f233ac7be98aa字串回到那個輸入框:

image

image

得到 flag:flag{it's_a_h0le_in_0ne}

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。