0x01 PHP在面向对象的程序设计中,类和对象是两个非常重要的概念。类是创建对象的基础,包含了对象的结构和功能。对象是类的实例,它拥有类中定义的属性和方法。
以下是一个PHP类:
<?phpclass TestClass //定义一个类{//一个变量public $variable = 'This is a string';//一个方法public function PrintVariable(){echo $this->variable;}}//创建一个对象$object = new TestClass();//调用一个方法$object->PrintVariable();?>
PHP 对属性或方法的访问控制,是通过在前面添加关键字实现的。
public:公有的类成员可以在任何地方被访问。
protected:受保护的类成员只能被其自身以及其父类和子类访问。
private:私有的类成员只能被其定义所在的类访问
访问控制修饰符不同,序列化后属性的长度和属性值会有所不同,如下所示:
publi ...
[第一章 web入门]常见的搜集dirsearch -u http://74394245-f26a-46d0-92c9-6cead1346fa4.node5.buuoj.cn:81/
之后没有思路,查看题解发现:
flag1:n1book{info_1 flag2:s_v3ry_im flag3:p0rtant_hack}
[第一章 web入门]粗心的小李
githacker –url http://83d9dee3-3f90-4977-9cc5-99d26b130a8b.node5.buuoj.cn:81/.git –output-folder git
在githacker文件夹目录下会生成index.html,得到flag
[第一章 web入门]SQL注入-有回显
判断注入方式:id=2-1和id=1回显不同,证明是字符型注入。
判断闭合方式:id=1’无回显,id=1”有回显,证明闭合方式是单引号。
判断字段数:id=1’ order by 3– - 有回显,id=1’ order by 4– -无回显,证明 ...
[护网杯 2018]easy_tornado打开页面发现三个链接:各自的文本是:
flag in /fllllllllllllagrendermd5(cookie_secret+md5(filename))
观察到url都是filename+filehash的格式。根据hints,目前需要cookie_secret。
尝试把filename改成/fllllllllllllag:
[!NOTE]在Python中,“render”是一个非常常用的术语,特别是在Web开发和Web框架中。它通常与模板引擎一起使用,用于将模板和上下文变量渲染成一个最终的文本或HTML输出。
想到模板注入。更改msg,页面发生同样变化:
构造payload:/error?msg={3*3}},发现被过滤了。
[!NOTE] TitleTornado是python的一个模板。在Tornado里,应用的设置可以通过handler.settings访问。
[ZJCTF 2019]NiZhuanSiWei
分析代码,需要传递三个get参数:text,file,pa ...
0x00 前置知识继承与原型链在JavaScript中,继承是通过原型链实现的。
JavaScript 只有一种结构:对象(object)。每个对象都有一个私有属性指向另一个名为原型(prototype)的对象。原型对象也有一个自己的原型,层层向上直到一个对象的原型为 null。整体看来就是多个对象层层继承,实例对象的原型链接形成了一条链,也就是 js 的原型链。
一个对象的原型可以通过其__proto__ 属性访问。
举个例子:
function Person(name) { this.name = name;}Person.prototype.sayHello = function() { console.log(`Hello, my name is ${this.name}`);};const person1 = new Person("Alice");person1.sayHello(); // 输出: Hello, my name is Alice
上面的例子创建了一个名为Person的构造 ...
签到
PaoluGPT下载源码,包含database.py和main.py。
# database.pyimport sqlite3def execute_query(s: str, fetch_all: bool = False): conn = sqlite3.connect("file:/tmp/data.db?mode=ro", uri=True) cur = conn.cursor() res = cur.execute(s) if fetch_all: return res.fetchall() else: return res.fetchone()
# main.py的关键代码@app.route("/list")def list(): results = execute_query("select id, title from messages where shown = true", fetch_all=True) messages = ...
你能在一秒内打出八句英文吗经典脚本题,思路:先获取页面中需要输入的英文文本,再提交你获得的的文本。<p id='text'> 是一个 HTML 标签,它表示一个段落元素(<p>)并且带有一个 ID 属性,值为 text
import requestsfrom bs4 import BeautifulSoup# 创建会话session = requests.Session()# 目标 URLstart_url = "http://eci-2ze28vznmioh0zpy19h2.cloudeci1.ichunqiu.com/start"submit_url = "http://eci-2ze28vznmioh0zpy19h2.cloudeci1.ichunqiu.com/submit" # 修改为实际提交的 URL# 获取页面内容response = session.get(start_url)if response.status_code == 200: soup = BeautifulSoup(r ...
headach3
会赢吗ZmxhZ3tXQTB3
控制台是开发者调试 JavaScript 代码的利器,允许开发者在无需修改源代码的情况下,直接执行和测试代码。
在 revealFlag 函数中,如果请求成功并得到了包含 flag 和 nextLevel 的数据,控制台会输出成功信息。
IV95NF9yM2Fs
MXlfR3I0c1B在这段代码中,<noscript> 标签及其包含的内容会在用户的浏览器禁用 JavaScript 时显示,确保即使 JavaScript 不可用,页面仍然提供表单提交功能。拼接:ZmxhZ3tXQTB3IV95NF9yM2FsMXlfR3I0c1BfSkpKcyF9
智械危机提示:robots
这道题目是一个经典的 CTF Web 题,考察对 加密反转逻辑 和 命令执行漏洞 的理解。命令执行漏洞的核心在于应用程序没有对用户输入进行充分的验证和过滤,导致恶意输入被当作系统命令执行。遇到这类 CTF 题目,通常解题的思路可以分为几个主要步骤:
1. 理解题目需求和源码逻辑
仔细阅读代码,分析参数的使用和处理方式。弄清每个函数的功能,特别是涉及到加密 ...
web的组成框架
web相关漏洞
数据包
HTTP协议:超文本传输协议,从WEB服务器传输超文本标记语言(HTML)到本地浏览器的传送协议。
HTTP特点:
简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。
灵活:HTTP允许传输任意类型的数据对象。传输的类型由Content-Type加以标记。
无连接:限制每次连接只处理一个请求。服务器处理完请求,并收到客户的应答后,即断开连接,但是却不利于客户端与服务器保持会话连接,为了弥补这种不足,产生了两项记录http状态的技术,一个叫做Cookie,一个叫做Session。
无状态:无状态是指协议对于事务处理没有记忆,后续处理需要前面的信息,则必须重传。
请求报文
响应报文
GET、POST区别
都包含请求头请求行,post多了请求body。
get用来查询,不会对服务器上的内容产生作用。post用来提交,如把账号密码放入body中。
GET是直接添加到URL后面的,直接可以看到,而POST是放在报文内部的,无法直接看到。
GET提交的数据长度是有限制的,具体的长度限制视浏览器而定。而 ...
[极客大挑战 2019]EasySQL首先随意输入用户名及密码,发现url变化,说明是get请求。
输入1‘,判断是字符型注入还是数字型注入。发现报错,说明是字符型注入。
输入万能密码:1’ or 1=1# 或者 1‘ or ’1‘=1,注意是英文字符。
登录成功。
[极客大挑战 2019]Havefun打开靶机,发现没有任何信息。
按下F12,发现源代码中有一段php注释。
对url作如下改动,解题成功。
[HCTF 2018]WarmUpF12查看源代码,发现注释内容。
访问source.php。
根据 $whitelist = ["source"=>"source.php","hint"=>"hint.php"]; 访问hint.php。
代码审计。
if (! isset($page) || !is_string($page)) { echo "you can't see it&quo ...