title: "tinyctf-2014-NaNNaNNaNNaN-Batman-writeup"
categories: [ "CTF" ]
tags: [ "CTF","CTF writeup" ]
draft: false
slug: "11"
date: "2019-01-06 22:37:00"
- Why write a writeup for a 2014 question: because I was doing a certain CTF training platform question
First, the question provided an attachment called web100.zip, which, when extracted, was a web100 file.
When opened with Notepad, it looked like this:

Most of it is understandable, but there are some boxes. I noticed the words "script" and "function", so I guessed it was PHP code and dragged it into the browser to take a look:
![]()
There was an input box, and at the end, there was an eval function being executed:

Let's change it to display an alert and drag it in again:

Oh, the garbled text is gone, and we obtained the PHP source code:
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 _
Let's format the code using a tool:

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 _
The code is quite simple. It uses a regular expression to check if the input string starts with be0f23, ends with e98aa, and contains the strings 233ac and c7be9. If these conditions are met, the function below will be executed. So, we construct the string be0f233ac7be98aa and enter it into the input box:
![]()
![]()
We obtained the flag: flag{it's_a_h0le_in_0ne}