本文首发于先知社区:https://xz.aliyun.com/news/17415 赛后总结发现这是一个漏洞百出的题,有各种各样的打法,这里我的打法是基于patch的结果来写的,下面就详细说一下 题目分析 题目是2.31的libc,不是传统的增删改查,出题思路是一个文件上传后压缩解压的功能,但实际上就是增删查都齐全,没有传统意义上的改 upload对应的是增,release对应的是删,download对应的是查,encode,decode需要逆向分析一下 首先看upload 这里要输入一个in…
虽然是新生赛,但这个题个人觉得并不水,是一个挺有意思的httpd,感觉出题参考了西湖论剑里的一道题,原理也是base64解码溢出,题目的源码应该是改编自tinyhttpd这个开源项目,下面一起来逆向分析一下 首先创建一个端口,然后开启监听,每次接收到数据包就创建新的线程处理数据包,处理函数是accept_request函数。 进入accept_request函数,我们继续进行分析 前面就是在做一些检查,判断当前请求的类型,然后把请求路径拼接进去,并且判断了路径中是否存在"..",避免了路径穿越,…
什么是栈迁移 所谓栈迁移,一般而言,是在栈溢出量很小(一般只能溢出到返回地址处),无法打一个完整的ROP链的情况下,利用两次leave ret,将栈帧位置改变到我可控的地址上,在这个地址上我预先已经写好了一段payload,于是在栈迁移过后程序就会继续执行我预先在别处布置好的payload,那么接下来我们就好好地来解释一下栈迁移的原理是什么 栈迁移的原理 首先,我们编写一个demo函数,来展示一个程序栈帧的建立与消亡过成 void demo() { char buf[0x20]; ret…
最近在做有关无人机视觉的项目,由于superpoint网络和ros系统的联动比较困难复杂,故最后决定直接将superpoint的代码集成到C++里,用C++直接去调用,省去了节点之间通信的繁琐,故在此记录一下我一点一点摸索的历程。 什么是PyObject? 在一切的开始,你务必要知道什么是PyObject,简单来说,一切python里的东西都是PyObject,无论你是想要传参,还是接受返回值,还是调用某个函数,某个类等等,他们都是PyObject,你也必须用一个PyObject类型的指针来接受…
这篇文章受密码保护,输入密码才能阅读
启动ROS核心 roscore 创建ROS包 catkin_create_pkg ros_superpoint_pkg rospy roscpp std_msgs sensor_msgs cv_bridge catkin_create_pkg 包名 [用到的其他包] 运行ROS节点 rosrun ros_superpoint_pkg publishertest.py rosrun 包名 包里的节点名 通过launch文件一次性运行多个ROS节点 roslaunch ros_superpo…
熊师傅牛逼 最近在学IOT,如果在wsl里模拟固件,即使启动成功,也无法成功的在本机访问服务,一开始也没学过计网,也不了解wsl的网络机制,被这个问题困扰好久,只能在虚拟机里去运行,但我实在是不喜欢虚拟机,因此执着于研究wsl如何才能启用Firmae,今天在熊师傅的帮助下终于成功,下面说一下原理和流程 原理 由于我不是很懂计网,还在学习,只能用不专业的语言来描述一下原理,但或许不专业的语言更有助于其他小白理解这个问题 wsl的网络是如何运作的呢? 正常wsl里的服务是能够访问的到的,让我们来看一…