CTF-MD5

OnionT@KillBoy
OnionT@KillBoy
作者
47
文章
0
粉丝
渗透测试3913,0902字数 497阅读1分39秒阅读模式
AI智能摘要
你是否曾在CTF比赛中卡在一道看似“什么都没有”的谜题前?页面只显示“We han't anything!”,但源码中暗藏玄机——robots.txt指向shell.php,一个动态变化的MD5前六位验证正等着破解。这不仅是技术较量,更是耐心与字典的比拼。本文揭秘如何用Python脚本自动生成MD5字典并快速爆破,手把手教你从零拿到flag,洞悉CTF出题人的隐藏逻辑。
— AI 生成的文章内容摘要

打开页面发现一串提示~~~

CTF-MD5-图片1

说什么都没有,查看一下页面源代码

CTF-MD5-图片2

发现应该有个robots文件,去访问看看

CTF-MD5-图片3

又发现了一个shell.php,哎,出题人真烦。。。访问shell.php、、、、

CTF-MD5-图片4

这个返回页面中的式子意思就是在输入框输入一个字符串,然后将输入的字符串进行mad5加密,然后取出前6位,要正好等于后面的这个字符串,就能成功拿到flag,这里需要注意,每刷新一次页面或者提交一次,等号后面的值会变一次。

CTF-MD5-图片5

这个题真的是没有什么意思,只要你的md5字典够强,手动搜都能搜到,于是我随便拉个一个密码字典,再写个Python脚本对密码字典中所有的字符进行加密,再手动搜就可以了。。。。。。(当然也可以一个python脚本一次到位,但是我太懒,实在是不想浪费时间再这种题上了)

CTF-MD5-图片6

拿到flag。。。。。

CTF-MD5-图片7

Python字典生成脚本。。。。

#coding:utf-8  import hashlib,os import requests  DIC = [] Source_list = open('ip.txt','r') result1 = open('result.txt','w') result2 = open('haha.txt','w')  def fileRead():         global DIC         for line in Source_list.readlines():             line = line.strip('/n')             DIC.append(line)             #print DIC #arg = 'dmn19800707' def md5_key(arg):     hash = hashlib.md5()     hash.update(arg)     return hash.hexdigest() fileRead() for i in DIC:     haha = i     print i     r = md5_key(i)     r2 = r     result1.write(r2)     result1.write('=')     result1.write(haha)     result1.write('/n')   result1.close() result2.close() Source_list.close() 

Python自动获取flag......

#coding:utf-8  import hashlib,os import requests,re  url = 'http://123.206.31.85:3030/shell.php' s = requests.session() DIC = {} #Source_list = open('md5_dic.txt','r') answer = '' def fileRead():         for line in Source_list.readlines():         line = line.strip('/n')         md5 = line[0:6]         flagstr = line[34:50]         DIC[md5] = flagstr     #    print DIC[md5]  def getmd5(url):     con = s.get(url)     response = con.text     print response     md5 = re.findall('=......./<',response)     print md5     md5 = str(md5)     md5 = md5[5:11]     print type(md5),md5     return md5  def searchmd5(MD5):     if MD5 in DIC.keys():         answer = DIC[MD5]         return False     else: return True  def getflag(payload):     payload = {'password':payload}     get = s.get(url,params=payload)     print get.text  #fileRead() while searchmd5(getmd5(url)):     getflag(answer)     break #Source_list.close()

http://www.oniont.cn/index.php/archives/16.html

 
OnionT@KillBoy
评论  39  访客  39
    • 话痨小行星
      话痨小行星 1

      这题纯属体力活,字典够大直接撞库就行😂

      • 茶香满溢
        茶香满溢 1

        求问这个脚本里的ip.txt是啥?自己生成的吗?

          • 绒绒小兔
            绒绒小兔 1

            @ 茶香满溢 估计是自定义的密码字典文件

          • 麦冬
            麦冬 0

            md5前六位碰撞也太随意了,刷新一次换一次,烦死了

            • 社交玻璃心
              社交玻璃心 0

              之前搞过类似的,也是写个脚本跑字典,折腾了好久

              • 独钓寒
                独钓寒 0

                这出题人怕不是懒到极致,直接靠脚本解还标啥CTF?

                • 雾璃心
                  雾璃心 0

                  那个啥,flag拿到了有奖励吗?还是纯练手?

                  • 时间褶皱
                    时间褶皱 0

                    说白了就是个哈希爆破,没啥技术含量,练手还行

                      • 欢乐的泡泡
                        欢乐的泡泡 0

                        @ 时间褶皱 练手题而已,别太较真

                      • Rustling Leaves
                        Rustling Leaves 1

                        我用rockyou字典跑了一晚上,结果发现前六位根本用不着那么大?

                        • 铜匠秦
                          铜匠秦 0

                          haha.txt是干啥的?看代码没太明白,有大佬解释下不?

                          • 鸢尾
                            鸢尾 1

                            太贵了吧这也,为了个flag搭这么多环境,真折腾

                            • 绯红魔导师
                              绯红魔导师 1

                              这代码写得有点糙啊,result1.close()写循环里了?

                              • 无拘无束
                                无拘无束 0

                                md5前六位碰撞确实太简单了,随便找个在线网站都能破

                                • 尖脑壳
                                  尖脑壳 0

                                  re.findall那个正则感觉写的有问题,等号后面可能匹配不全

                                  • 矿工郑
                                    矿工郑 0

                                    为啥要用ip.txt当字典?这命名也太迷惑了🤔

                                    • 碧落居
                                      碧落居 0

                                      这种题新手练手还行,老手直接秒破

                                      • 棒棒糖
                                        棒棒糖 0

                                        之前遇到过更坑的,要碰撞前8位,跑了两天服务器

                                        • 憨包谷
                                          憨包谷 0

                                          所以最后flag是啥?有实际意义吗

                                            • 笑不活了
                                              笑不活了 1

                                              @ 憨包谷 就是个测试flag,没实际意义

                                            • 电路诗人
                                              电路诗人 1

                                              这环境配置看着就头大,docker能直接拉现成的不

                                              • 温柔的海
                                                温柔的海 0

                                                脚本里result2根本没写入操作,纯摆设啊

                                                • 赤橙余晖
                                                  赤橙余晖 0

                                                  图片里那个拼写错误是故意的吧,CTF老套路了

                                                  • 芳芳
                                                    芳芳 0

                                                    这代码result1.close放循环里太草率了吧

                                                    • 紫罗兰夜
                                                      紫罗兰夜 1

                                                      图片里那拼写错误绝对是出题人故意的🤔

                                                      • 宇宙星辰录
                                                        宇宙星辰录 1

                                                        用ip.txt当字典名也太抽象了,完全看不懂逻辑

                                                        • 宽厚包容
                                                          宽厚包容 0

                                                          有没有更简单的解法?非得写脚本吗?

                                                          • 虎斑武士
                                                            虎斑武士 1

                                                            之前碰到的md5题要撞8位,跑得我电脑发烫

                                                            • 铃兰花
                                                              铃兰花 0

                                                              re.findall那个正则确实有问题,等号后面可能漏字符

                                                                • Drifting Petal
                                                                  Drifting Petal 0

                                                                  @ 铃兰花 这正则真得改改,等号后面加个+保险点

                                                                • VictorianEstate
                                                                  VictorianEstate 1

                                                                  这脚本写得有点绕,能直接贴最终payload不?

                                                                    • OnionT@KillBoy
                                                                      OnionT@KillBoy

                                                                      @ VictorianEstate payload就是密码字典里的字符串,比如‘admin123’

                                                                    • Velvet Sonnet
                                                                      Velvet Sonnet 0

                                                                      这种题做多了就腻,纯属重复劳动

                                                                        • 象大个
                                                                          象大个 0

                                                                          @ Velvet Sonnet 纯练手题,没啥实际意义

                                                                        • 长靠武松
                                                                          长靠武松 0

                                                                          flag拿到了有啥用?能兑换奖品吗?

                                                                          • 粉红小猪
                                                                            粉红小猪 0

                                                                            docker能直接部署环境不?手动配太麻烦了

                                                                              • 星辰之力
                                                                                星辰之力 0

                                                                                @ 粉红小猪 docker拉个现成镜像省事多了,何必自己配

                                                                              • 天穹游侠
                                                                                天穹游侠 1

                                                                                为啥要用haha.txt?代码里根本没写东西进去啊

                                                                                • 赤霄狻猊
                                                                                  赤霄狻猊 1

                                                                                  用字典爆破确实有点笨,但管用就行

                                                                                匿名

                                                                                发表评论

                                                                                匿名网友

                                                                                拖动滑块以完成验证