ctfhub 信息收集 && Root-me(未完待续.......)
这是ChaMd5团队搞的网站,故而来刷一刷。本来是不想写的,因为大多数虽然没针对性写过,但是基本上很多题目的第一步都会有所涉及。
信息收集
目录遍历
一般思路是利用../../往上级目录查找。但是这里用的是从当前目录往下找。可以分第一级目录为1,第二级目录为1、2、3、4,然后第一级目录为2,第二级目录为1、2、3、4......的思路查找。

如果嫌麻烦可以自己写脚本验证。
PHPINFO
点击可以查看的按钮。Ctrl+F -->FLAG。

备份文件下载
网站源码
dirsearch --help。

-i,-x可以对状态码进行筛选。
dirsearch -u "targat_url" -t 50 -e tar,tar.gz,zip,rar -i 200

然后url拼接www.zip。

打开flag开头的txt文件,文件里只有where is flag ??
所以url拼接flag_2878827692.txt后,这种方法可行,马上就能查看到flag。
bak文件
dirsearch -u "target_url" -t 50 -e bak,php,php.bak

查找这个index.php.bak的过程比较漫长。-x 503去除503状态码后,无法得到这个文件。
但是不去除503状态码,日志量又很大。
一个可靠方案是将其输出为csv文件,然后Ctrl+F -->index.php或bak,多次尝试后就能查看到index.php.bak。
--format=FORMAT Report format (Available: simple, plain, json, xml,
md, csv, html, sqlite)
所以访问index.php.bak。

vim缓存
什么是vim缓存?

所以勾选文件扩展名.swp,.swo,.swn。
dirsearch -u "http://challenge-fa5d0c39345b0019.sandbox.ctfhub.com:10800/" -t 50 -e .swp,.swo,.swn

url拼接.index.php.swp后,打开这个文件快速查找(Ctrl+F) FLAG。

.DS_Store
这次使用通配符或者.DS_Store。
dirsearch -u "http://challenge-8099c57dc2b94316.sandbox.ctfhub.com:10800/" -t 50 -e*

url拼接.DS_Store。下载后进入相关目录查看。

windows机里面可以复制出来,然后将多余的符号删除掉。

$�3�a�6�d�e�d�3�3�b�2�b�9�b�8�c�1�6�1�9�d�4�d�0�b�3�7�e�c�e�f�0�b�.�t�x�tnoteustr���
# 3a6ded33b2b9b8c1619d4d0b37ecef0b.txt
url拼接txt文件。
http://challenge-8099c57dc2b94316.sandbox.ctfhub.com:10800/3a6ded33b2b9b8c1619d4d0b37ecef0b.txt
就能够在前端得到FLAG。
剩下的跟git有关(已做过类似题目)或者感觉比较冷门,所以不想花时间写了。有兴趣的参考。CTFHUB技能树(全详细解析含进阶)-CSDN博客、
Web-CLIENT
HTML - disabled buttons
Ctrl-u。input 后面接着disabled,将其删去随便提交啥即可。
Javascript - Authentication
查看到login.js后,填入对应的值。最后一句意思是只用提交password相关的值到Validation就能通过。以后的关卡同理。

Javascript - Source
输入框提交123456azerty,Validation下面输入123456azerty,Well done!
<html>
<head>
<script type="text/javascript">
/* <![CDATA[ */
function login(){
pass=prompt("Entrez le mot de passe / Enter password");
if ( pass == "123456azerty" ) {
alert("Mot de passe accepté, vous pouvez valider le challenge avec ce mot de passe.\nYou can validate the challenge using this password."); }
else {
alert("Mauvais mot de passe / wrong password !");
}
}
/* ]]> */
</script>
</head>
<body onload="login();"><link rel='stylesheet' property='stylesheet' id='s' type='text/css' href='/template/s.css' media='all' /><iframe id='iframe' src='https://www.root-me.org/?page=externe_header'></iframe>
</body>
</html>
Javascript - Authentication 2
看split的作用,:将"GOD:HIDDEN"分割成两部分,一个是username(GOD),一个是password(HIDDEN)。提交两个后,临时看到alert后的字符串。拿password对应的值HIDDEN提交。
function connexion(){
var username = prompt("Username :", "");
var password = prompt("Password :", "");
var TheLists = ["GOD:HIDDEN"];
for (i = 0; i < TheLists.length; i++)
{
if (TheLists[i].indexOf(username) == 0)
{
var TheSplit = TheLists[i].split(":");
var TheUsername = TheSplit[0];
var ThePassword = TheSplit[1];
if (username == TheUsername && password == ThePassword)
{
alert("Vous pouvez utiliser ce mot de passe pour valider ce challenge (en majuscules) / You can use this password to validate this challenge (uppercase)");
}
}
else
{
alert("Nope, you're a naughty hacker.")
}
}
}
Javascript - Obfuscation 1
% + 十六进制,想到url解码。
<?php
echo urldecode('%63%70%61%73%62%69%65%6e%64%75%72%70%61%73%73%77%6f%72%64');
?>
得cpasbiendurpassword。
源码:
<html>
<head>
<title>Obfuscation JS</title>
<script type="text/javascript">
/* <![CDATA[ */
pass = '%63%70%61%73%62%69%65%6e%64%75%72%70%61%73%73%77%6f%72%64';
h = window.prompt('Entrez le mot de passe / Enter password');
if(h == unescape(pass)) {
alert('Password accepté, vous pouvez valider le challenge avec ce mot de passe.\nYou an validate the challenge using this pass.');
} else {
alert('Mauvais mot de passe / wrong password');
}
/* ]]> */
</script>
</head>
<body><link rel='stylesheet' property='stylesheet' id='s' type='text/css' href='/template/s.css' media='all' /><iframe id='iframe' src='https://www.root-me.org/?page=externe_header'></iframe>
</body>
</html>
Javascript - Obfuscation 2
源码
javascript
<html>
<head>
<title>Obfuscation JS</title>
<!--
Obfuscation
.Niveau : Facile
.By Hel0ck
.The mission :
Retrouver le password contenu dans la var pass.
You need my help ? IRC : irc.root-me.org #root-me
-->
<script type="text/javascript">
var pass = unescape("unescape%28%22String.fromCharCode%2528104%252C68%252C117%252C102%252C106%252C100%252C107%252C105%252C49%252C53%252C54%2529%22%29");
</script>
</head>
</html>

浙公网安备 33010602011771号