从一题中学习通过继承关系创造对象进行Python-Jail
Python的内建函数&内建模块内建函数是Python自带的函数,可以直接使用,无需导入任何模块;在python交互模式下,使用命令dir('builtins')即可查看当前python版本的一些内建变量、内建函数
内建模块是Python自带的库,它们提供了更复杂或更专门的功能,但在使用之前需要通过 import 语句引入
例如我们常用的
12os:与操作系统交互,进行文件和目录操作sys:提供与Python解释器交互的功能,如命令行参数、退出程序
Python命名空间
A namespace is a mapping from names to objects.Most namespaces are currently implemented as Python dictionaries.
Python 中的 命名空间(Namespace) 是一种用于将名称(变量名、函数名等)映射到对象(数据、函数、类等)的机制。它类似于一个字典,其中“名称”是键,实际的“对象”是值。这一机制可以避免命名冲突,确保不同作用域内相同名称不会相互干扰。
一个简单的例子说明命名 ...
记第一次HVV护网
⚠免责声明:此次渗透测试在已授权下进行操作,所有涉及敏感内容已打码,且在渗透测试结束以后全部删除。该文章仅作经验总结分享
前言
这篇文章以吹夸夸的形式呈现,口水话会很多,更多的也是心得体会吧
这是我第一次参加线下的护网,四个字形容,才疏学浅。真实的渗透环境就是不一样,一周的时间,体验到了什么是坐牢。再加上有几个公司职业队的加入,简直是降维打击,个个都是内网打穿,此次教育系统的网络攻防对于他们也只是练练手了
回归正题,此次作为红队,在学长老登的带领下,更多的收获可能还是整个流程,包括前面的信息搜集,对各单位的资产进行初步渗透打点,打标签等等;
其次就是对于教育系统,资产类型无非就是一些管理后台,教务在线这种内网服务,重点在于,子域名搜集的全,暴露面就更广
其它也就没啥了,后面就根据成果类型具体说吧
网站群管理平台git泄露漏洞和任意文件读取漏洞以及ssh弱口令登录任意文件读取goby扫漏通过目录穿越读取/../../../../../../../../etc/passwd
本来想看看能不能提权,但这里发现只能读取/etc/passwd,于是有了后面的ssh弱口令登录
ssh弱口令登 ...
2024 XYCTF Crypto Sign1n_Revenge复现
123456789101112131415161718192021222324252627282930313233343536373839404142from Crypto.Util.number import *from tqdm import *import gmpy2flag=b'XYCTF{uuid}'flag=bytes_to_long(flag)leak=bin(int(flag))while 1: leak += "0" if len(leak) == 514: breakdef swap_bits(input_str): input_list = list(input_str[2:]) length = len(input_list) for i in range(length // 2): temp = input_list[i] input_list[i] = input_list[length - 1 - i] input_list[length - 1 - i] = temp ...
2024CISCN Simple_php题解
我觉得一点都不simple,这是我做个最难的rce,但是有这么多人都做起了,不知道是自己太菜了还是啥
1234567891011121314<?phpini_set('open_basedir', '/var/www/html/');error_reporting(0);if(isset($_POST['cmd'])){ $cmd = escapeshellcmd($_POST['cmd']); if (!preg_match('/ls|dir|nl|nc|cat|tail|more|flag|sh|cut|awk|strings|od|curl|ping|\*|sort|ch|zip|mod|sl|find|sed|cp|mv|ty|grep|fd|df|sudo|more|cc|tac|less|head|\.|{|}|tar|zip|gcc|uniq|vi|vim|file|xxd|base64|date|bash|env|\?|wget ...
2024 Sekai CTF Tagless题解
这是一道来自sekaiCTF的题目,从老登那了解到的一道很不错的XSS题目
提供给用户输入的内容并打印出来
从源文件我们可以看到主体文件app.py
123456789101112131415161718192021222324252627282930313233343536373839404142434445from flask import Flask, render_template, make_response,requestfrom bot import *from urllib.parse import urlparseapp = Flask(__name__, static_folder='static')@app.after_requestdef add_security_headers(resp): resp.headers['Content-Security-Policy'] = "script-src 'self'; style-src 'self' https:// ...
Python-Flask(完善中...)
Python-Flask初识Flask思考:Flask是Python中的Web应用程序框架,以我的初步理解来看就是能生成web页面,这不得不让我联想到了PHP,同样都是可以生成Web,想必他们一定有很多差异值得探讨。
首先引起我注意的是框架这个字眼,我们暂且用打包这个说法来定义吧,这个框架相当于一个预先编写好的结构,对于Web应用程序它提供了相应的基本功能和组件,这里就有我们所熟知的处理HTTP请求、路由URL、渲染模板、管理用户会话等基本功能。
所以,不难发现,这个flask框架跳过了那些繁琐的构建网页前所需的一些设置,协议,让用户通过这个框架,模板去套,更专注于开发、测试和维护网页。
Flask的内核:Werkzeug&Jinja2Werkzeug:Werkzeug是一个WSGI(Web Server Gateway Interface)工具库,它提供了实现HTTP请求、响应处理、URL路由等功能的核心组件,为Flask提供了底层的HTTP请求处理能力。
Jinja2:Jinja2是一个现代化的模板引擎,它允许开发者使用类似Python的语法来创建动态内容的模板。Flask ...
SQL注入(完善中...)
SQL注入
其实sql注入从来不只是具有单一性的,从操作来看,很多时候都是结合起来使用。所以上面这张图只是对sql注入进行一个总结,我选择把联合注入放在前面,间接性的结合其它比如说数据类型注入等来作为开头
一.联合注入(有回显)在进行注入之前,判断注入数据类型
数字型:
12id=1 and 1=1id=1 and 1=2
在sql内部语句就会转换成:
12select * from table_name where id=1 and 1=1select * from table_name where id=1 and 1=2
可见,第一个永远为真,回显肯定正常;第二个肯定不对,回显就会错误,根据这个来判断是否存在数字型注入
字符型:
通常的使用单引号去检测
1id=1'
sql语句会是这样的:
1select * from users where username='1''
这个时候最后的单引号会落单,多半会有回显提示你的语句存在语法错误,我们只需要
1id=1'#
加一个注释符号,把后面的单引号注释掉,这个时候如果页面有正常回显,那 ...
命令执行&代码执行(完善中...)
命令执行&代码执行命令执行(RCE)漏洞和代码执行漏洞区别如下:
命令执行则是调用操作系统命令进行执行
代码执行实际上是调用服务器网站代码进行执行
命令执行漏洞(RCE)当开发人员调用了执行系统命令的函数,而其中的函数参数用户可以控制,届时就有了利用机会
1.代码层过滤不严格调用的第三方组件存在代码执行漏洞常见的命令执行函数
PHP:exec、shell_exec、system、passthru、popen、proc_open等
Java:Runtime.exec(String command)、ProcessBuilder(String… command)、ProcessBuilder.Redirect、ProcessBuilder.start()等
这里有几个常用的系统命令执行函数(PHP)
exec():
执行外部程序,但只返回最后一行的输出结果
123456函数原型bool exec(string $command,array $output,int $return_var)(必需)$command: 要执行的命令$output: 一个引用数组,用于存储命令的输 ...