<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[aoque9909的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/aoque9909</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; aoque9909]]></copyright><item><title><![CDATA[堆之*bin理解]]></title><link>https://blog.youkuaiyun.com/aoque9909/article/details/101112812</link><guid>https://blog.youkuaiyun.com/aoque9909/article/details/101112812</guid><author>aoque9909</author><pubDate>Tue, 23 Oct 2018 11:15:00 +0800</pubDate><description><![CDATA[在程序运行中，使用bins结构对释放的堆块进行管理，以减少向系统申请内存的开销，提高效率。
chunk数据结构
从内存申请的所有堆块，都使用相同的数据结构——malloc_chunk，但在inuse和free状态，表现形式上略有差别。
chunk-&gt; +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...]]></description><category></category></item><item><title><![CDATA[Malloc & Free]]></title><link>https://blog.youkuaiyun.com/aoque9909/article/details/101112810</link><guid>https://blog.youkuaiyun.com/aoque9909/article/details/101112810</guid><author>aoque9909</author><pubDate>Tue, 23 Oct 2018 11:11:00 +0800</pubDate><description><![CDATA[本文重点解释malloc和free过程中涉及到的堆块管理活动，暂时省略了目前接触面比较小的关于线程和非主分配区活动的部分。
free
用户free的chunk不会直接归还系统，而是由ptmalloc对空闲状态的chunk进行管理，以便于下一次分配的时候从空闲的chunk中快速找到合适的堆块进行分配，从而避免大量系统调用，减少申请内存的开销。
关于对空闲chunk管理的*bins，参...]]></description><category></category></item><item><title><![CDATA[First Kernel-pwn]]></title><link>https://blog.youkuaiyun.com/aoque9909/article/details/101112807</link><guid>https://blog.youkuaiyun.com/aoque9909/article/details/101112807</guid><author>aoque9909</author><pubDate>Tue, 23 Oct 2018 11:03:00 +0800</pubDate><description><![CDATA[Kernel pwn-极简题目的操作模式
完全参照M4x师傅的指导，用 hacklu的baby kernel迈了第一步
题目附带文件说明
一般题目会给出bzImage,.cpio, .sh文件


sh文件适用于启动kernel的shell脚本文件,参数决定了内核的保护情况。


.cpio文件为文件系统映像。将其解压可以获得服务器交互程序的客户端


bzIma...]]></description><category></category></item><item><title><![CDATA[RSA学习档案]]></title><link>https://blog.youkuaiyun.com/aoque9909/article/details/101112802</link><guid>https://blog.youkuaiyun.com/aoque9909/article/details/101112802</guid><author>aoque9909</author><pubDate>Fri, 10 Aug 2018 09:09:00 +0800</pubDate><description><![CDATA[RSA 学习档案
基本原理
随机选择两个质数p，q模数n=p*qφ(n)=(p−1)(q−1)选择加密指数e: 1 &lt; e &lt; φ(n)计算机密指数d: e*d % φ(n) = 1c = m ^ e % nm = c ^ d % n  
常见攻击方式
模数分解
1.直接分解
n小于256bit可以本地暴力分解。去factordb查询是否有已经分解成功的结果。  ...]]></description><category></category></item><item><title><![CDATA[Hackme.inndy -> Onepunch]]></title><link>https://blog.youkuaiyun.com/aoque9909/article/details/101112805</link><guid>https://blog.youkuaiyun.com/aoque9909/article/details/101112805</guid><author>aoque9909</author><pubDate>Wed, 01 Aug 2018 09:15:00 +0800</pubDate><description><![CDATA[Onepunch
这个题的想法必须得称妙了，需要对以往简单的认知进行一定的颠覆。特殊性在于程序的代码段(0x401000)具有写权限  
1.通过修改程序代码段控制程序流程
程序中只能对任意一个字节改写一次，似乎没有任何利用空间，但是程序的跳转方式有点特殊，在函数内部大量使用了jz short loc_400756进行跳转。  

add:jz及相似的jnz, jmp，等都是两...]]></description><category></category></item><item><title><![CDATA[在格式化字符串的边缘试探]]></title><link>https://blog.youkuaiyun.com/aoque9909/article/details/101112803</link><guid>https://blog.youkuaiyun.com/aoque9909/article/details/101112803</guid><author>aoque9909</author><pubDate>Tue, 31 Jul 2018 09:40:00 +0800</pubDate><description><![CDATA[格式化字符串
format string基本介绍
此漏洞由printf类函数在使用时直接使用用户可控字符串作为格式化字符串使用所导致。如printf(s),在运行时，用户可以通过给予s特殊的值造成程序崩溃或泄露内存地址，乃至任意地址写控制程序流程。
利用原理
获取参数

在使用printf函数时，第一个参数为格式化字符串指针，之后根据格式符向下寻找需要的参数并根据格式符进行解...]]></description><category></category></item><item><title><![CDATA[Fastbin attack]]></title><link>https://blog.youkuaiyun.com/aoque9909/article/details/101112800</link><guid>https://blog.youkuaiyun.com/aoque9909/article/details/101112800</guid><author>aoque9909</author><pubDate>Mon, 25 Jun 2018 15:50:00 +0800</pubDate><description><![CDATA[Fastbin Attack
暂时接触到了两种针对堆分配机制中fastbin的攻击方式，double free和house of spirit
Double free

基本原理
与uaf是对free之后的指针直接进行操作不同，double free通过利用fastbin对堆的分配机制，改写在fastbin中的chunk，实现对指定内存的堆块分配。
先正常释放chunk1和c...]]></description><category></category></item><item><title><![CDATA[ISCC2018 Reverse & Pwn writeup]]></title><link>https://blog.youkuaiyun.com/aoque9909/article/details/101112801</link><guid>https://blog.youkuaiyun.com/aoque9909/article/details/101112801</guid><author>aoque9909</author><pubDate>Tue, 29 May 2018 15:25:00 +0800</pubDate><description><![CDATA[Reference:L1B0
Re

RSA256
春秋欢乐赛原题。。flag都不变的
给了三个加密文件和公钥证书public.key，可以使用openssl进行处理  


$openssl rsa -pubin -text -modulus -in ./public.key
Public-Key: (256 bit)
Modulus:
    00:d9:9e:...]]></description><category></category></item><item><title><![CDATA[z3学习档案]]></title><link>https://blog.youkuaiyun.com/aoque9909/article/details/101112787</link><guid>https://blog.youkuaiyun.com/aoque9909/article/details/101112787</guid><author>aoque9909</author><pubDate>Mon, 07 May 2018 15:17:00 +0800</pubDate><description><![CDATA[Reference：
看雪-z3巧解逆向
知乎:Z3一把梭
z3 solver学习
使用z3约束求解器解决CTF中的题目
Playing with Z3,hacking the serial check
Z3 - 第一次簡單小練習
安装

pip install z3-solver


使用方法

&gt;&gt;&gt; from z3 import *...]]></description><category></category></item><item><title><![CDATA[Pwnable.kr]]></title><link>https://blog.youkuaiyun.com/aoque9909/article/details/101112791</link><guid>https://blog.youkuaiyun.com/aoque9909/article/details/101112791</guid><author>aoque9909</author><pubDate>Mon, 16 Apr 2018 23:14:00 +0800</pubDate><description><![CDATA[Dragon —— 堆之 uaf
开始堆的学习之旅。
　　uaf漏洞利用到了堆的管理中fastbin的特性，关于堆的各种分配方式参见堆之*bin理解
　　在SecretLevel函数中，发现了隐藏的system("/bin/sh")调用，虽然无法直接执行，但无疑会是后续进展中的有力武器。
　　在和恐龙战斗的函数结束部分，发现了free掉但没有置空的free(dragon)语句，而...]]></description><category></category></item><item><title><![CDATA[2018强网杯]]></title><link>https://blog.youkuaiyun.com/aoque9909/article/details/101112798</link><guid>https://blog.youkuaiyun.com/aoque9909/article/details/101112798</guid><author>aoque9909</author><pubDate>Sun, 01 Apr 2018 00:29:00 +0800</pubDate><description><![CDATA[先占个楼
看着writeup慢慢学吧。。

转载于:https://www.cnblogs.com/ZHijack/p/8659885.html]]></description><category></category></item><item><title><![CDATA[<软件工程基础>个人项目——数独]]></title><link>https://blog.youkuaiyun.com/aoque9909/article/details/101112785</link><guid>https://blog.youkuaiyun.com/aoque9909/article/details/101112785</guid><author>aoque9909</author><pubDate>Fri, 23 Mar 2018 08:12:00 +0800</pubDate><description><![CDATA[参见GitHub：https://github.com/1773262526/Software-Foundation



Personal Software Process Stages    
预估耗时（分钟）   
实际耗时（分钟）   


计划
30
30


估计这个任务需要多少时间




开发
120...]]></description><category></category></item><item><title><![CDATA[<软件工程基础>]]></title><link>https://blog.youkuaiyun.com/aoque9909/article/details/101112799</link><guid>https://blog.youkuaiyun.com/aoque9909/article/details/101112799</guid><author>aoque9909</author><pubDate>Tue, 13 Mar 2018 19:45:00 +0800</pubDate><description><![CDATA[我是JX_Z，学习信息安全方向　　　　//（怎么在这头不头尾不尾的地方弄个自我介绍这么尴尬呢）
之前也写过一些随笔记录自己的学习过程
软件工程基础课程中遇到的问题和学习心得都会记录在这篇文章中不断更新。
谢谢大家！

*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-...]]></description><category></category></item><item><title><![CDATA[jarvis OJ部分writeup]]></title><link>https://blog.youkuaiyun.com/aoque9909/article/details/101112796</link><guid>https://blog.youkuaiyun.com/aoque9909/article/details/101112796</guid><author>aoque9909</author><pubDate>Fri, 23 Feb 2018 01:00:00 +0800</pubDate><description><![CDATA[[XMAN]level 0
[XMAN]level 1 —— 简单shellcode利用
[XMAN]level 2
[XMAN]level 3 —— ret2libc尝试
[XMAN]level2&amp;level3 x64
[XMAN]level 4 —— DynELF
[XMAN]level 5
smashes ——SSP leak &amp; ELF重映射
Te...]]></description><category></category></item><item><title><![CDATA[Jarvis OJ- [XMAN]level2/3_x64-Writeup——64位简单栈溢出]]></title><link>https://blog.youkuaiyun.com/aoque9909/article/details/101112794</link><guid>https://blog.youkuaiyun.com/aoque9909/article/details/101112794</guid><author>aoque9909</author><pubDate>Fri, 01 Dec 2017 15:48:00 +0800</pubDate><description><![CDATA[两道64位栈溢出，思路和之前的32位溢出基本一致，所以放在一起
在这两道中体现的32位和64位的主要区别在于函数参数传递的方式
在32位程序运行中，函数参数直接压入栈中
　　　　调用函数时栈的结构为：调用函数地址-&gt;函数的返回地址-&gt;参数n-&gt;参数n-1-&gt;···-&gt;参数1
在64位程序运行中，参数传递需要寄存器
　　　　64位参数传递约定：前六个...]]></description><category></category></item><item><title><![CDATA[Jarvis OJ - [XMAN]level3 - Writeup——ret2libc尝试]]></title><link>https://blog.youkuaiyun.com/aoque9909/article/details/101112797</link><guid>https://blog.youkuaiyun.com/aoque9909/article/details/101112797</guid><author>aoque9909</author><pubDate>Sun, 26 Nov 2017 22:08:00 +0800</pubDate><description><![CDATA[这次除了elf程序还附带一个动态链接库
先看一下，很一般的保护


思路分析
在ida中查看，可以确定通过read函数输入buf进行溢出，但是并没有看到合适的目标函数

但是用ida打开附带的链接库，可以看到system函数和“/bin/sh”字符串都存在

于是思路就确定为read函数溢出-&gt;system函数，同时加入参数“/bin/sh”
通过libc...]]></description><category></category></item><item><title><![CDATA[Jarvis OJ - [XMAN]level2 - Writeup]]></title><link>https://blog.youkuaiyun.com/aoque9909/article/details/101112792</link><guid>https://blog.youkuaiyun.com/aoque9909/article/details/101112792</guid><author>aoque9909</author><pubDate>Sun, 26 Nov 2017 16:36:00 +0800</pubDate><description><![CDATA[简单利用“/bin/sh”夺权


简单看一下

放到ida中发现了“/bin/sh”串，和system函数，可以利用==


所以只要在vuln函数返回时跳转到system函数，同时添加参数“/bin/sh”就可以实现啦

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from pwn import *...]]></description><category></category></item><item><title><![CDATA[Jarvis OJ - [XMAN]level1 - Writeup——简单shellcode利用]]></title><link>https://blog.youkuaiyun.com/aoque9909/article/details/101112793</link><guid>https://blog.youkuaiyun.com/aoque9909/article/details/101112793</guid><author>aoque9909</author><pubDate>Sun, 26 Nov 2017 15:47:00 +0800</pubDate><description><![CDATA[100分的pwn


简单查看一下，果然还是比较简单的



放到ida中查看一下，有明显的溢出函数，并且在函数中打印出了字符串的地址，并且字符串比较长，没有NX保护
所以我们很容易想到构造shellcode，在栈中执行shellcode拿shell权限
shellcode是一段恶意代码，在没有NX保护程序中，可能作为输入而写进栈，之后运行到此处时可以执行shell...]]></description><category></category></item><item><title><![CDATA[SQLMap简单尝试]]></title><link>https://blog.youkuaiyun.com/aoque9909/article/details/101112795</link><guid>https://blog.youkuaiyun.com/aoque9909/article/details/101112795</guid><author>aoque9909</author><pubDate>Tue, 24 Oct 2017 21:14:00 +0800</pubDate><description><![CDATA[第一次完成了一个注入呢，虽然是恬不知耻的用sqlmap跑出来的

简单介绍注入时后台的数据等级，有助于后面的理解
　　①可以类比成一个装着excel文件的文件夹，每一个excel文件就相当于一个数据库
　　
　　②库的下一级是表，相当于一个文件中存在的sheet表
　　
　　③表的下级是列
　　
　　④每一列中又有字段，可以相当于excel中的一个格格啦
简单记一下...]]></description><category></category></item><item><title><![CDATA[网页表单提交、备份文件泄露]]></title><link>https://blog.youkuaiyun.com/aoque9909/article/details/101112790</link><guid>https://blog.youkuaiyun.com/aoque9909/article/details/101112790</guid><author>aoque9909</author><pubDate>Sun, 15 Oct 2017 15:45:00 +0800</pubDate><description><![CDATA[怎么又是web?　　EXM??我一定是个假的二进制手
假装来看看吧
以Geek2017 粗心的李超为例（大佬们，我知道错了，第一次搞忘了规矩了）
The first way：弱口令爆破 

网页里只有两个输入框，从源码里能找到name

生成字典，去Python里request爆破吧，脚本如下

 1 # coding:utf-8
 2 import requ...]]></description><category></category></item></channel></rss>