风之栖息地

风之栖息地

habitat of wind

花式栈溢出学习
继续进行着栈溢出的练习,这次是参考了ctf-wiki上面的演示题目,在复现过程中的一些记录。 over安恒月赛的题目,首先看程序保护,开启了NX,不能写shellcode,同时分析了程序结果发现buffer有0x50,但是输入有0x60也就是说只能覆盖rbp和ret地址,所以必须要改变栈的位置。 首先是一个trick,里面读入的函数是read,所以读入的数据是不会自动加上\0的,其他的两个函数gets和scanf都会对读入的字符串加上\0截断。利用这个差异性,我们只要填入0x50个非0数据,这样puts就会打印出rbp的值。泄露出栈基址之后,我们就能利用相对偏移来确定题目随意的栈地址。 ...
基础ROP学习
最近开始入门pwn,在白泽新手oj那里学了一波之后开始自己学剩下的内容。看到atum大佬推荐的三道基础ROP题目,就练习一下,学习思路总结经验。在网上找题的过程中发现vss基本上绝迹了。。。辛苦一番之后终于找到,为了后面的人也能快速找到题目我就把三道题一起上传了。 http://hurricane618.me/resource/basic-rop/vss http://hurricane618.me/resource/basic-rop/ropasaurusrex http://hurricane618.me/resource/basic-rop/r0pbaby r0pbaby一道强化版...
2019RCTF 部分Web的WriteUp
一年一度的RCTF开始了,又能学一波骚操作,RCTF的web题目去年就非常好,今年也特别出色。由于研究所月赛的原因没有参与其中,所以赛后来复现一下。 nextphp123456789101112<?php if (isset($_GET['a'])) { eval($_GET['a']); } else { show_source(__FILE__); } 一个代码执行,但是肯定没有这么简单,执行phpinfo查看到disable_function之后,发现禁用了已知范围内的所有危险函数,并且还把之前考差过的putenv也禁用了。这样就没有办...
2019DDCTF 未解决的web题 writeup
homebrew event loop一道python的代码审计题目,题目的入口点会检测url中携带的参数并且初始化session的值。 123456789101112def entry_point(): querystring = urllib.unquote(request.query_string) request.event_queue = [] if querystring == '' or (not querystring.startswith('action:')) or len(querystring) > 100: querystring =...
2019DDCTF 部分我解决的题目writeup
我得说DDCTF真的是脑洞太大,一言难尽。。。 滴~文件包含,需要一些转换。转成hex值之后两次base64。 12345678910# -*- coding: utf-8 -*- import base64 import binascii text = raw_input('text: ') text = binascii.b2a_hex(text) print text print base64.b64encode(base64.b64encode(text)) 拿到index.php源码 123456789101112131415161718192021222324<?...
2019TCTF web writeup
wallbreaker easy这道题在比赛的时候专注在imagick上面,但是由于是最新版本,以前的bypass漏洞已经修补。。。之后由于复试的原因没有仔细研究,现在开始复现。 这道题给了一个webshell,密码是backdoor,可以直接用菜刀连接,然而用phpinfo查看禁用函数,发现已经把所有执行命令的函数都ban了,并且知道操作系统是ubuntu18.04. 所以这是一个受限制的webshell绕过disable_function的问题 bypass disable_function的方法绕过disable_function也是一个老生常谈的问题了。总结一下大概有一下四种:...
快速寻找串行接口
这是一篇来自devttys0的一篇文章,在寻找串口的方法上给出了很多有用的方法,是一篇不错的总结文,在国内没有看到翻译,所以就想翻译成中文供大家学习,第一次做翻译,如有错误之处,请大家体谅,可以给我留言,我会快速修改。 原文链接 鉴于这个博客的名声和我拥有的点击量,我认为现在是大家一起讨论串口的时候了,尤其是嵌入式系统的串口。 我的目标是通过使用确定的测试和有根据的猜测来讲解我发现的有效识别和逆向嵌入式串口的技术,而不需要特别昂贵的设备。 简介串口对于嵌入式开发人员特别有用,通常会使用串口来: 进入boot loader 得到启动和调试信息 通过shell和系统交互 不用说这个功能同...
萤石某摄像头的安全分析--固件提取
由于之前考研一直没有时间搞,现在终于有空来做一些小实验。 固件提取方式比较主流的提取方式有以下几种: 官网或者找客服索要固件 在线升级的时候抓包得到下载地址 拆flash芯片,用编程器读取芯片内容(也可以使用烧录夹直接获取flash,但是有些时候有保护引脚就只能拆芯片) 用硬件电路的调试接口和固件的bootloader获取固件 从串口进入系统之后,打包固件 首先,这个摄像头现在没有升级操作,官网也没有固件。烧录夹现在还用的不熟练,在分析之后决定用硬件调试接口来获取固件。 TTL接口线序这里推荐一篇仙果大佬写的省钱版测序 https://bbs.pediy.com/thread-246...
thinkphp 5.0.23 rce分析和复现
分析入口是在app::run(),这里有创建http的请求实例, 随后在后面会有路由检查,从这里跟进函数routeCheck。 在路由检查中会到路由类的check方法处,继续跟进。 在check中会有获取当前方法的method 下面在method中会获取var_method这个伪变量,其实这个就是我们通过post传进的_method,这里进入判断之后会将我们post的值当做Request类的方法调用,这里我们的poc是传入的__construct,这样就会调用它的构造方法,并且参数是post数据。 继续跟进构造方法,这里的foreach会遍历所有变量,将存在的参数全部覆盖掉,在...
haozi xss 挑战赛 writeup
0x00123function render (input) { return '<div>' + input + '</div>'} 没什么说的,div标签+没过滤直接插 <img src=1 onerror=alert(1)> 0x01123function render (input) { return '<textarea>' + input + '</textarea>'} 输入点在<textarea>这种标签中,需要闭合标签,在插入payload。</te...
avatar
hurricane618
May the wind guide you