【CTF web2】


一、CTF web 反序列化

1、是什么?

序列化:是将变量转换为可保存或传输的字符串的过程;实现函数是serialize()
反序列化:把这个字符串再转化成原来的变量使用,就是序列化的逆过程。实现函数是unserialize()

2、怎样做:

实现函数是:serialize()和unserialize()
反序列化数据格式
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
O:对象
7:名称的长度
2:属性的个数
{ s:字符串 4:name字节 name:值 i:整数 90:值 }:属相情况

反序列化:

在这里插入图片描述
在这里插入图片描述

3、为什么:

序列化和反序列化结合起来,可以轻松地存储和传输数据,使程序更具维护性

4、漏洞概念:

反序列化漏洞:也叫对象注入,就是当程序在进行反序列化时,会自动调用一些函数,但是如果传入函数的参数可以被用户控制的话,用卢可以输入一些恶意代码到函数中,从而导致反序列化漏洞。

4、例题:

例题1

做题步骤:
1.复制源代码到本地
2.注释掉和属性无关的内容
3.根据题目需要,给属性赋值(这是关键)
04.生成序列化数据,通常要urlencode
5.传递数据到服务器(攻击目标)

在这里插入图片描述

在这里插入图片描述

运行得到:在这里插入图片描述
粘贴到 hackbar:
在这里插入图片描述
说明phpinfo()测试通过
改为查看系统命令 :system(ls)
在这里插入图片描述
在这里插入图片描述
重新运行,粘到hackbar即可

例题2
在这里插入图片描述

在这里插入图片描述修改
在这里插入图片描述

在这里插入图片描述
运行复制hackbar即可
http:/ /122.114.252.87∶1126/unserialize / ?
exp=0%3A5%34%22Login%22%3A1%3A4%7Bs%3A11%3A%22%Q0Login%99user%22%3Bs%3A5%3A%22admin$22%3B%7D

.

二、CTF web 魔术方法

1、手册:

在这里插入图片描述

2、属性赋值

1.直接赋值:优点是方便,缺点是只能赋值字符串。
2.外部赋值:优点是可以赋值任意类型的值,缺点是只能操作public属性。
3.构造方法赋值(万能方法)︰优点是解决了上述的全部缺点,缺点是有点麻烦。

三、CTF web POP链

POP(面向属性编程)链是指从现有运行环境中寻找一系列的代码或指令调用,然后根据需求构造出一组连续的调用链。
**反序列化利用就是要找到合适的POP链。 **

反序列化题目做题步骤:

1.复制源代码到本地
2.注释掉和属性无关的内容

3.根据题目需要,给属性赋值(这是关键)寻找POP链:
a .起点: unserialize的参数可控的地方
b.终点:执行代码或者可以任意读取文件的地方。
c.连接起点和终点:研究属性和方法(特别是魔术方法)

4.生成序列化数据,通常要urlencode
5.传递参数到服务器(攻击目标)

该部分开个头,之后补充

### CTF Web挑战赛常见题型及解法 #### SQL注入攻击 SQL注入是一种常见的Web安全漏洞,允许攻击者通过输入恶意的SQL查询来操控数据库。这种攻击通常发生在应用程序未正确过滤用户输入的情况下。 ```sql SELECT * FROM users WHERE username = '$username' AND password = '$password'; ``` 如果`$username`和`$password`变量未经适当转义,则可能导致SQL注入[^1]。解决方法包括使用预处理语句以及参数化查询。 #### XSS (跨站脚本攻击) XSS攻击涉及将恶意脚本注入网页中,这些脚本会在其他用户的浏览器中执行。它分为存储型XSS、反射型XSS和DOM-based XSS三种主要形式[^2]。 防止XSS的关键在于对所有用户输入进行严格的验证与编码: ```javascript function escapeHtml(unsafe) { return unsafe.replace(/[&<>"']/g, function(m) { switch(m) { case '&': return '&'; case '<': return '<'; case '>': return '>'; case '"': return '"'; case "'": return '''; } }); } ``` #### 文件上传漏洞 文件上传漏洞可能使攻击者能够上传并运行危险的脚本或程序。为了防范此类风险,应严格检查上传文件的内容类型及其扩展名,并将其保存在一个隔离的安全目录下[^3]。 #### SSRF (服务器端请求伪造) SSRF让攻击者诱骗服务器向内部网络或其他外部目标发起HTTP请求。这可能会暴露敏感数据或者被用来扫描内网服务。防御措施之一是对URL白名单加以控制,并限制对外部资源访问的能力[^4]。 #### CSRF (跨站请求伪造) CSRF利用已登录用户的会话信息,在他们不知情的情况下发送恶意请求给受信任的站点。可以通过引入Anti-CSRF Tokens机制来缓解此威胁。 ```html <form action="/transfer" method="POST"> <input type="hidden" name="csrf_token" value="{{ csrf_token() }}"> </form> ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值