周报!月报!年报!
二一年十月周报(一)
从这个月起,周末杂货铺正式开张!由于落后的太多需要跑的更快才能赶上别人,所以开始写周报计划一下,回顾上周学习过的知识以及接下来需要学习的知识,做周报真滴可以提升学习的效率,同时做周报也是件挺快乐的一件事(×水文章
上周学习回顾:学习内容:
复习SROP+orw的基本操作与手法,之前对SROP还有点懵懵懂懂,一直搞不清楚它到底是怎么样劫持控制流的,其实就是在栈上的对应的RIP寄存器上写上要跳转的地方即可(当时可能太浮躁没太注意….
一直以来都对tache bin attack很恐慌,觉得tache这个新奇玩意有点奇怪,但真正静下心来看看它的攻击手法之后并没有这么的困难
同样也是对IO_FILE复杂的结构给吓到了,这周终于把它给搞定了!从头到尾都看了看分析了一下,对IO_FILE泄露地址也懂为啥payload要那样写了!
做了一下串口拿shell的实验,但是并没有成功,原因不详 ㄒoㄒ!!!
get到的小tips:
保护全开如何查看.bss段内容:vmmap看基地址加上ida里面的偏移即可
注意ebp存放的值有可能是一条汇编代码,在PWN溢出的时候, ...
buu刷题记之PWN系列
gyctf_2020_force0x00 基本信息
保护全开,GOT也写不了,看这个名字就感觉是house of force….
0x01 IDA分析
正好印证了之前的猜测,满足house of force的条件:
可覆盖Top chunk为-1
能够分配任意大小的堆块以及分配的次数
先试一下覆盖Top chunk
12payload = p64(0)*3+p64(0xffffffffffffffff)heap_base = add(10,payload)
没啥毛病!不记得回去看看house of force
接下来就是想着任意地址堆块分配到哪里去了,前面看到保护全开,其实我第一想法是覆盖GOT表的,但是RELOC保护全开了,没办法了!只能覆盖malloc_hook,写one_gadget了
0x02 解题思路1.泄露libc,heap基址
2.修改Top chunk的size为-1
3.劫持__malloc_hook修改one_gadget,这里需要realloc改变栈环境
0x03 完整EXP12345678910111213141516171819202122232 ...
IOT设备的攻击路径思考
最近在测试IOT设备的时候,在逆向之后,找到漏洞,如何攻击就成了一个大问题,发包?怎么发?如何构造?这篇文章就来总结关于IOT设备的攻击路径,我们总得通过一个路径来完成一个攻击,一般情况下有两种方法,第一种是通过无线,另一个就是通过一些物理的手段,拿个榔头(不是)…,通过物理上的接口,这个接口可以是USB,可以是SD卡,这就与目标设备的底座更加相关一些,但是物理接口还是有很大的局限性,毕竟你得接触到设备,而且物理接口也种类繁多,所以这里不介绍,本文更多聚焦于无线这个层面,回到刚刚那个问题,发包?怎么发?如何构造?本文主要是解决这几个问题!
发包?怎么发?在PWN中通常编写攻击脚本的时候,都是通过remote( )连接,然后send( )来发送攻击的载荷,send( )这么一个操作,其实就是往目标服务器发送一些数据的操作,不用pwntools能发吗?肯定能,毕竟remote( )和send( )函数本质还是socket那一套东西,pwntools只是做了一层封装,只用remote(“IP”,port)一条命令就创建了一个TCP/UDP的socket,然后直接调用socket ...
Flask · 从零开始构建一个简易的个人博客
前段时间学习渗透的时候,感觉SSTI模板注入很迷糊,就想着来研究一下flask框架来加深一下SSTI模板注入的理解,然后一发不可收拾,萌生了开发一个搭建个简易博客的想法,接下来就从零开始构建一个简单的博客吧!
Hello,Flask!flask简单来说就是一个WEB框架,那什么是WEB框架呢?在之前的学习当中,前端我们可以使用html,CSS,JavaScript,后端可以使用PHP来编写,最终实现一个WEB网站,那随着时代的发展,这种设计模式慢慢变得有点落后,就出现了一个相当于管理员的应用,也就是前面讲到的WEB框架,它可以帮助你完成很多繁琐的事情,如:路由,响应,请求等等功能,让你更加的注重网站的开发,剩下的事情统统都交给它就好了!
现在的WEB框架已经演变出了一个完整的体系—-MTV(Model Template View)也就是模型,模板和视图,这是WEB框架的核心,一切都是围绕这三个部分来构建的,模型是指数据库模型,用于处理后端的数据,模板是指前端页面的展示,它和URL的联系是通过视图函数来实现的,也可以称他为路由,后面会慢慢的认识到这个体系的精巧!
最后,其实在py ...
2021年度总结
2021年度总结
梦的开始
这一年或许是我进步最快的一年,对我来说是很魔幻的一年,可能我没想到自己还能做这么多事情,在今年年初,觉得自己逆向逆不下去了,就开始转为PWN手,继续我的网络安全之路,但很不幸,我特别的急于求成,随便看了一下栈还没完全理解,就赶紧跑去学堆,因为我看到现在的比赛都是堆题,就是这种眼高手低的心态导致我的学习进度被拖了整整几个月的时间,但当时很幸运,还凭着一点逆向功底,只做出一道简单题,就入围了HWS硬件安全线下冬令营,说实话,这是迸发的起点,在这次冬令营里我认识到了很多大哥,他们对我后面的学习也有着很大的帮助,在这次冬令营我算是真正的见识到了IOT的魅力,但当时的我PWN技术还很弱,很多知识我都吸收不到,基本上算是走了一个过场就回去了,最后还捞了个阳光普照奖,报销了一半入营费,也是在这我认识到了一位某为的老师!
攻防演练
虽说他曾经信誓旦旦的跟我说,”我以后拉你来某为实习”,他虽然没有兑现他的承诺,我也不能怪他,只能说自己的院校出身不太行,某天看到了可别喷….,这不是我一个人再说好吧,其他大厂我不清楚,但某为这几年是真的,尽管如此,他还是帮助我很多,比如 ...
如何对ARM架构下的VxWorks系统固件进行修复?
9c972ad7a0a9b5e8fc27927485bf95cf6296d81e36c6b057be90c26faa2dd8d80055889933313c8e48713445415e77abb9c705e641dc4cd8853559ca9458aff636a40e08ab7a02b6e074a8bf86ed0ef9b8cd91973220f94156e9ba409c2088210aadf5a0f90e091f48545457a827309b3c5038b9b31b4858cfcd83fcbb9e7dab18083b7d68a567262e5f9897a4ff947d7d2072b67106a50692b957c18fb2765f29a52aa97779ac2df351997d9412f6f6d9de62b0252e7d7fd46252001b3c5f1fade1503833963a7d0b58957af359825979eb98333287283b164d1a41f87c2af334bedb7ff6d04af905115c45993c8e103ef094e2d72ab9964 ...
从广东省强网杯--girlfriend中看realloc的艺术
很早就得知realloc一些特殊的作用,但一直以来都是硬套,导致有时候并不能很快的反应过来(太菜了…),所以在赛后对realloc做个整理,如果感兴趣的话就一起看下去吧!
realloc分析首先先通过源码来进行分析,下面的libc-2.27的realloc的源码,此函数位于glibc-2.27-master\malloc\malloc.c,为了更好理解删除了一下代码:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111void *__libc_realloc (void *oldmem, size_t bytes){ mstate ar_ptr; INTERNAL_SIZE_ ...
如何从串口获取到设备的shell?
当一个设备没有telnet,没有ftp,没有ssh,那我们怎么获取到此设备的调试能力呢?拆!
UART接口拆开设备,绿的一块黑的一块,第一次看确实有点无从下手,别慌,仔细在板子上寻找连着的3个口或者4个口,很容易就能找到它—-UART,UART是个什么玩意儿呢? UART的全称为Universal Asynchronous Receiver/Transmitter,中文名字叫通用异步传输收发传送器,它充其量就是一个设备之间的传输协议,那何为异步呢?在介绍异步传输的时候,先来看看同步传输:
下面是SPI(Serial Peripheral Interface)的通信模型,有一条SCK时钟控制线,来进行进行数据传输时的同步,这就是同步的含义!
SPI协议(上)——基础介绍
SPI协议(中)——通讯过程时序
SPI协议(下)——读写串行FLASH实验
回头来看,异步就是没有时钟信号来同步发送端和接收端,用通俗一点的话来说就是发送端可以在任何时候向接收端发送数据,什么意思呢?我们思考在Windows下进行键盘输入这个例子,我们什么时候按下键盘,操作系统是不会知道的,当我们按下某个键 ...
64位静态程序fini劫持
前言
在64位的静态程序当中,除了ret2syscall,又碰到了静态程序的万能gadget————fini,fini是个什么东西呢?回想之前的《main真的是函数入口吗?》,在程序进入和退出都会调用函数来帮忙初始化和善后,它们分别是__libc_csu_init和__libc_csu_fini,后者就是今天我们要谈论的函数。
原理用《main真的是函数入口吗?》里面exit的demo:
123456789#include<stdio.h> int main(void){ printf("welcome to exit\n"); exit(0); return 1;}//gcc exit.c -o exit -no-pie -static
IDA打开直接定位__libc_cus_fini函数,里面有三条语句特别的关键:
123456789101112131415161718192021222324252627.text:0000000000401910 __libc_csu_fini proc near ...
2021·CISCN国赛初赛WP
2021·CISCN国赛初赛WPPWNlonelywolf
保护全开,并且是在libc-2.27.so,含有tache bin
alloc没啥,挺常规的
123456789101112131415161718192021222324252627282930313233343536unsigned __int64 alloc(){ size_t v1; // rbx void *v2; // rax size_t size; // [rsp+0h] [rbp-18h] BYREF unsigned __int64 v4; // [rsp+8h] [rbp-10h] v4 = __readfsqword(0x28u); printf(1LL, "Index: "); scanf(&unk_F44, &size); //index得等于0 if ( !size ) { printf(1LL, "Size: "); scanf(&unk_F44, &size ...