自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 xctf 4-ReeHY-main-100

卡了很久,最后发现他给的libc有点问题,还是用libcsearcher找,贼坑。参考:https://bbs.pediy.com/thread-218300.htm首先是unlink修改free的got表为puts,泄露函数地址,然后修改free为system。# -*- coding: utf-8 -*- from pwn import*from LibcSearcher imp...

2019-09-24 15:08:03 704 1

原创 scrapy翻页+云主机离线跑程序

一断开云主机本地的shell连接就会结束进程,离线泡程序用screen首先pip安装screen然后创建screen:screen -S screen名字在新创建的screen中运行程序,这时候关了也没关系。重新连接shell时查看有哪些screen:screen -ls连接到想连结的:screen -r 编号.名字...

2019-07-31 10:20:40 217

原创 jarvisoj Hello(用ida脚本)

源代码int sub_100000CE0(){ int result; // eax signed int v1; // [rsp+1Ch] [rbp-14h] int v2; // [rsp+24h] [rbp-Ch] v2 = ((unsigned __int64)((char *)start - (char *)sub_100000C90) >> 2) ^ ...

2019-07-20 19:28:14 304

原创 bugku pwn5

参考writeup首先发现第一次输入存在格式化字符串漏洞,泄露出栈上的__libc_start_main。这个是在start函数中入栈的,应该是每个程序都会进入main函数之前进行的操作。__libc_start_main是libc中的函数,可以泄露出加载libc的基地址。然后就是找服务器system地址和binsh地址,通过gadget赋值。# -*- coding: utf-8 -*-f...

2019-07-17 16:00:34 1601 3

原创 scrapy入门,爬图片

以freebuf首页图片为例。新建工程,命令行输入:scrapy startproject 工程名(本项目为scrapy startproject Test)然后 cd 工程名然后 scrapy genspider 爬虫文件名 目标网址 (本项目为scrapy genspider MySpider freebuf.com)得到工程模板。1.修改item.py文件items.py文件#...

2019-07-13 21:24:51 132

转载 android 原生dialog

/** * 两个按钮的 dialog */ private void showTwo() { builder = new AlertDialog.Builder(this).setIcon(R.mipmap.ic_launcher).setTitle("最普通dialog") .setMessage("我是最简单的dia...

2019-07-04 09:09:07 137

转载 (转)Android之根据Uri获得图片或视频文件路径(解决4.4以上版本得不到路径的情况)

@SuppressLint("NewApi")public class UriUtils { /** * Get a file path from a Uri. This will get the the path for Storage Access * Framework Documents, as well as the _data field for the Media...

2019-07-04 09:08:52 892

原创 retrofit2

Retrofit是基于OkHttp的网络请求框架,通过注解的方式配置请求。参考教程首先自己写个网站页面info.php,简单的php,返回json格式字符串:<?phpecho '{ "Employees": [ { "FirstName":"Bill" , "LastName":"Gates" }, { "FirstName":"George" , "LastName":"Bus...

2019-06-26 09:24:22 971 3

转载 rxjava rxandroid

Observable.create(new ObservableOnSubscribe<String>() { @Override public void subscribe(ObservableEmitter<String> emitter) throws Exception { //emitter是发射的方法,有4种,o...

2019-06-24 10:44:03 88

原创 xposed编写hook模块

首先按照网上教程,编写最简单的load包名模块。首先添加依赖,不用下载jar包,直接在app的build.gradle的dependence中添加compileOnly 'de.robv.android.xposed:api:82'compileOnly 'de.robv.android.xposed:api:82:sources'然后同步一下,没有报错就可以了,之前一直下载jar包然后添...

2019-06-20 10:52:52 3537

原创 jarvis oj typo

m4x的–如何pwn掉一个arm binaryarm 的参数 1 ~ 4 分别保存到 r0 ~ r3 寄存器中, 剩下的参数从右向左依次入栈, 被调用者实现栈平衡, 返回值存放在 r0中by the way, arm 的 pc 指针相当于 eip/rip, b/bl 等指令实现了跳转...

2019-06-04 11:25:29 700

转载 基于python的tcp socket通信

原文http://www.netfairy.net/?post=1570x01 开始python之旅服务端要用socket通信,我们首先要导入socket这个模块import socket然后设置连接的一些信息,我们是我们是基于TCP的通信,所以sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)然后将sock与服务端的IP和...

2019-05-30 21:35:32 832

原创 viewpager和recycleview

一、viewpagerviewpager可用来写仿微信界面滑动切换fragment,需要添加v4依赖。首先创建两个fragment,这里继承的是v4中的frgment,xml布局文件就只有一个text。另一个fragment也一样。public class BlankFragment extends Fragment { public View onCreateView(Layout...

2019-04-24 17:19:25 1392

原创 metasploit入门

1。nmap扫描目标主机,发现开启的服务和版本,当有防火墙时可用-sV或-P02。msfconsole中search “服务名称”,找到对应的模块3。use “模块全名”4。info,查看模块详情5。show payloads,查看可用payloads6。set payload “payload名”7。options,显示参数,然后set必要的参数8。exploit,执行...

2019-04-07 23:27:25 367

原创 Android客户端和python服务端socket通信

Android端:public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layou...

2019-03-28 17:17:48 2696 2

原创 jarvis http

结构有点复杂。学习了用ida调试remote linux:1.linux运行linux_server642.ida

2019-03-19 14:32:54 734

原创 jarvis itemboard

栈溢出点在item-&amp;gt;description,同时还有删除item时只free了块,没有处理item_array,导致存在野指针。参考wp第一种,uaf方法,由于堆的先进后出,当删除一个item后再申请item,块的内存顺序会和原来相反,因此构造name,此时item_array中的指针指向name,free时会将name当作item。payload如下:from pwn import...

2019-03-18 14:37:44 434 2

原创 jarvis guestbook2 / level6_x64

与level6思路相同,只是在x64运行。遇到几个问题:1.[DEBUG] Received 0x4e bytes: &quot;*** Error in guestbook2: realloc(): invalid pointer: 0x0000000001dcb018 ***\n&quot;调试了半天发现是当新块的大小与原来不一致时都会调用realloc,所以要填充的时候要仔细。2.原本想这样泄漏libc...

2019-03-12 14:10:54 838

原创 jarvis guess

知道了两个知识:一个数组下标溢出,C语言允许下标为负,若不检查则可能泄露邻接处的数据;第二个fork。一开始没找到溢出点,找了wp才知道思路,由于flag和given_flag和bin_by_hex在栈上相近,同时value1 = bin_by_hex[flag_hex[2 * i]]; value2 = bin_by_hex[flag_hex[2 * i + 1]];没检查下标不能小于0,通过...

2019-03-04 18:18:48 193

转载 老版本ubuntu 更新源

原文地址1、首先备份Ubuntu源列表sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup2、打开更新源列表sudo vi /etc/apt/sources.list 3、选择更新源地址Ubuntu普通版本支持的时间都有限,过了支持的时间,更新源都会被停用,比如Ubuntu 9.10原来的源都失效了(包括官方源,类似ust...

2019-02-23 22:13:31 501

原创 jarvis oj smashes

checksec发现开启了nx和canary。ida打开发现输入name时存在栈溢出,缓冲区大小0x108,同时发现存在"PCTF{Here’s the flag on server}"字符串,不过第二次输入的时候会覆盖。当检测到修改了canary时会返回'*** stack smashing detected ***: /home/ctf/smashes terminated\n'。此处“/h...

2019-02-23 19:33:26 427

原创 jarvis oj level6

原来的附件有点问题,重新发过了.主要用了两个技术:1.溢出泄露libc地址,heap地址.2.unsafe_unlink,这个how2pwn上unsafe_unlink.c里写的很清楚.首先看泄露libc地址New("A"*0x80)#0New("B"*0x80)#1Delete(0)New("123")List()c=p.recvuntil('AAAA')leak_addr=u...

2019-01-10 14:24:03 1157 1

原创 how2heap学习笔记(1)

1.first_fit.c就是堆的先进后出,malloc取最近free的大小大于请求的chunk,不是fastbin,fastbin没有最低位显示前一块。2.fastbin_dup.c#include &amp;amp;amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;amp;amp;gt;#include &amp;amp;amp;amp;amp;amp;lt;stdlib.h&amp;amp;amp;amp;amp;am

2018-12-28 22:56:57 2224 1

原创 jarvis oj level5

level5要求不用system和execve,而是用mprotect和mmap,查了一下,mmap主要是将哪个文件映射到一段内存去同时设置那段内存的属性 可读可写或者是可执行,mprotect函数是将从addr开始的地址 ,长度位len的内存的访问权限。毫无头绪。查了网上大神的wp,才知道思路。首先leak地址,shellcode写入bss没什么好说的。要说下为什么要把bss和mprotec...

2018-12-11 15:11:10 930 3

原创 jarvis oj level3_x64

level3_x64里没有找到system函数,但给了libc.so文件,应该是和level3一样的想法。先找到操作寄存器的地址,因为write需要3个参数,所以需要rdi,rsi,rdx。但我们搜索只找到了rdi和rsi。0x00000000004006b3 : pop rdi ; ret0x00000000004006b1 : pop rsi ; pop r15 ; ret根据网上w...

2018-12-07 13:15:40 802

原创 装linux系统和安装工具

虚拟机上做题时发现地址有些问题,在真机上没有,决定主机上装个linux。碰到的一些问题:1.用ultraiso照网上的教程做启动盘时选usb-udd+时制作成功但启动不了,换成raw可以了。2.装拼音3.pwntools,先装pip:sudo apt install python-pip,然后sudo pip install pwntools,很简单。还有peda...

2018-12-06 20:14:56 1028

原创 jarvis oj level2_x64

接下来做64位了,首先看下和32位有什么不一样。这篇文章的第3节说的很详细主要来说就是:1.内存地址的范围由32位变成了64位,但是可以使用的内存地址不能大于0x00007fffffffffff,否则会抛出异常。2.x64中的前六个参数依次保存在RDI,RSI,RDX,RCX,R8和 R9中,如果还有更多的参数的话才会保存在栈上。我们要修改寄存器的值就得通过找到例如pop rdi;ret这样...

2018-12-05 16:30:21 529

原创 jarvis oj level4

与level3相比没有提供libc.so文件。学习使用Dynelf:def leak(address):

2018-12-05 15:35:44 594

原创 Jarvis oj level3

下载下来发现有level3文件和libc.so文件,先checksec,和level2差不多,接着ida打开level3,没找到system函数和bin字符串,没什么办法了。接着去看so文件,libc是Linux下的ANSI C的函数库。找到了system函数和bin字符串。那么怎么利用呢?首先了解plt和got表。链接我是这么理解的:plt表中存放的是函数在got表中该项的地址,got表存放...

2018-12-04 19:10:11 1109

原创 jarvis oj level2

拖进ida,直接就看到了system函数,同时搜索一下,发现了“bin/sh”,没什么好说的,上脚本from pwn import *conn=remote("pwn2.jarvisoj.com","9878")conn.recvline()e=ELF("./level2")sys_addr=e.symbols['system']pad=0x88sh_addr=e.search("/...

2018-12-01 21:34:50 158

原创 jarvis oj level1

还是先checksecArch: i386-32-littleRELRO: Partial RELROStack: No canary foundNX: NX disabledPIE: No PIE (0x8048000)RWX: Has RWX segments发现数据部分可以执行,先看ida,同样是vulnerable处有栈溢...

2018-12-01 20:20:37 335

原创 jarvis oj level0

菜鸟入门,先从level0开始下手。首先checksec,发现开启了nx保护。Arch: amd64-64-littleRELRO: No RELROStack: No canary foundNX: NX enabledPIE: No PIE (0x400000)拖进64位ida,查看vulnerable_functionssize_t...

2018-12-01 19:50:00 895

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除