首页 > TAG信息列表 > JarvisOJ

jarvisoj_itemboard

itemboard 逆向分析 ADD: void __cdecl new_item() { int v0; // eax char buf[1024]; // [rsp+0h] [rbp-410h] BYREF int content_len; // [rsp+404h] [rbp-Ch] Item *item; // [rsp+408h] [rbp-8h] item = (Item *)malloc(0x18uLL); v0 = items_cnt++; item_arra

CTF-Buuoj-Pwn-jarvisoj_level0

#----------------------------------------------------------------------------------------------- # coding:UTF-8 | # author:zxcyyyyy000

buuctf pwn jarvisoj_fm

IDA查看 int __cdecl main(int argc, const char **argv, const char **envp) { char buf[80]; // [esp+2Ch] [ebp-5Ch] BYREF unsigned int v5; // [esp+7Ch] [ebp-Ch] v5 = __readgsdword(0x14u); be_nice_to_people(); memset(buf, 0, sizeof(buf)); read(0, bu

jarvisoj_fm

jarvisoj_fm 查看保护 当x==4时可以getshell。需要做的就是将x的值改为4就可以了。这里有一个格式化漏洞,32位程序的话直接借助pwntools的工具来就可以了。 from pwn import * context(arch='i386', os='linux', log_level='debug') file_name = './z1r0' debug = 1 if d

jarvisoj_level2_x64

jarvisoj_level2_x64 查看保护 溢出,有system sh from pwn import * context(arch='amd64', os='linux', log_level='debug') file_name = './z1r0' debug = 1 if debug: r = remote('node4.buuoj.cn', 26759) else:

jarvisoj_level1

jarvisoj_level1 使用checksec查看: 保护全关,并且还有RWX区域。栈溢出的题目的话直接ret2shellcode即可。 放进IDA中查看: 主函数中直接给出漏洞函数: 妥妥的一个栈溢出了,程序会输出buf的地址。 查看了下字符串也没有关键字符串,看来就是ret2shellcode 然而…BUU上的环境可能

pwn | jarvisoj_level2

jarvisoj_level2 简单栈溢出rop ret2text 存在system和binsh字符串 直接丢exp: from pwn import * context.log_level = 'debug' # sh = process('./level2') sh = remote('node4.buuoj.cn', 29799) p_binsh = 0x804a024 # p_system = 0x804849e p_system

jarvisoj misc

战队login 得到一个bmp文件,010打开发现缺失了图片头,加上42 4D 得到图片 没啥用,发现后面有一张图片,用保存选择另存为1.png 发现打不开,010看了一下发现宽高不对,随便改了一下,发现可以打开了但是乌漆嘛黑的很模糊,但是隐隐可以看到上面有东西 图片里还有 crc 校验值,可能是要用

jarvisoj_itemboard

jarvisoj_itemboard 总结 基础的UAF的题,只记录下exp吧。 Exp from pwncli import * cli_script() p:tube = gift['io'] elf:ELF = gift['elf'] libc: ELF = gift['libc'] def new(name, length, desc): p.sendlineafter("choose:", "

BUUCTF(pwn)jarvisoj_level3_x64

这道题是一道简单的rop类型的题目,跟之前做的题目有一些差异:( 这是64位的需要一些额外的操作 ) 64位汇编传参,当参数少于7个时, 参数从左到右放入寄存器: rdi, rsi, rdx, rcx, r8, r9。 当参数为7个以上时, 前 6 个与前面一样, 但后面的依次从 “右向左” 放入栈中,即和32位

[BUUCTF-pwn]——jarvisoj_level1

[BUUCTF-pwn]——jarvisoj_level1 题目地址:https://buuoj.cn/challenges#jarvisoj_level1 第一种直接构造shellcode writeup 第二种泄露libc进行操作 from pwn import * from LibcSearcher import * p = remote("node3.buuoj.cn",26361) #p = process("./level1") elf = ELF(

REVERSE-PRACTICE-JarvisOJ-6

REVERSE-PRACTICE-JarvisOJ-6 软件密码破解-2(unsolved)软件密码破解-1CrazyAndroid(unsolved)JarvisShell(unsolved) 软件密码破解-2(unsolved) 软件密码破解-1 32位MFC程序,先用xspy查“确定”按钮的id,为0001 再查整个窗口,知道“确定”按钮对应的响应函数为(0x0040)1BB0 ida打

[BUUCTF-pwn]——jarvisoj_level2

[BUUCTF-pwn]——jarvisoj_level2 题目地址:https://buuoj.cn/challenges#jarvisoj_level2 checksec 一下下, 32程序 IDA中看下,发现了system函数还是两个,有可利用的栈溢出read函数,shift+F12,还发现了"/bin/sh"字符串. 所以exploit就如下 exploit from pwn import *

[Jarvis OJ - PWN]——[XMAN]level0

[Jarvis OJ - PWN]——[XMAN]level0 题目地址:https://www.jarvisoj.com/challenges题目: checksec看看,64位,开启了NX保护 IDA,发现了我们的system函数,里面的参数也是我们想要的 找到callsystem函数的地址 0x400596 ,或者 system函数开始压参的地址0x40059A都可以作为返回地

jarvisoj-crypto部分题目

1.简单ECC 题目比较简单,参考代码如下: E = EllipticCurve(GF(15424654874903),[16546484,4548674875]) G=E([6478678675,5636379357093]) K=546768 P=G*K print P 将结果相加即可 2.rsaappend 题目一开始就给了多组加密数据,n也是不能分解的,这里自然可以联想到rsa里面经典的共

buuctf-pwn:jarvisoj_level6_x64

jarvisoj_level6_x64   只能申请unsorted bin大小下的unlink IDA看一下,可以发现edit里面有任意堆溢出的情况(realloc造成堆溢出) 然后free里面有UAF漏洞       然后几个注意的点,unlink直接可以模板化   1,泄漏地址 包括libc或者存放heap pointer的地址 2,unlink,伪造谁用谁的指

JarvisOJ level3_x64

这一题是和前面x86的差不多,都是利用了同一个知识点,唯一的区别就是使用的堆栈地址不同,x86是直接使用堆栈来传递参数的,而x64不同 x64的函数调用时整数和指针参数按照从左到右的顺序依次保存在寄存器rdi,rsi,rdx,rcx,r8和r9中 所以要找到rop然后来讲rdi和rsi和rdx赋值,这里前面两个比

jarvisoj flag在管理员手上

jarvisoj flag在管理员手上 涉及知识点: (1)代码审计和cookie注入 (2)哈希长度拓展攻击 解析: 进入题目的界面。看到    那么就是想方设法的变成admin了。挂上御剑开始审计。发现cookie有点问题,这个role很明显是guest字符串的序列化。    那么是不是简单的把role换成admin的序列化

JarvisOJ level3_x64

这题和level3大同小异,只不过这一题是x64的程序 做这题之前,建议先写level2_x64。 拿到这题,我们首先查看保护: 程序只开了NX保护,好的。 根据做过level3的经验,我们先找出我们需要的地址(也可以用pwntools工具自动找): vul()函数: write()函数的plt地址: 之后我们找齐需要用的gadget:

JarvisOJ pwn (一)

0x 01 XMAN_level0 常规的跟进函数,查看漏洞函数 可以看到函数里定义了一个字符变量他在栈中存放的位置是rsp-80h,而下面的read语句却允许我们输入最多512字节的数据,buf的首地址到rbp也就是栈帧的底部都才只有128个字,所以我们完全可以通过read函数来覆盖此函数的返回地址。 然后就是

JarvisOJ--.-字符串

Problem Description 请选手观察以下密文并转换成flag形式 ..-. .-.. .- --. ..... ..--- ..--- ----- .---- ---.. -.. -.... -.... ..... ...-- ---.. --... -.. .---- -.. .- ----. ...-- .---- ---.. .---- ..--- -... --... --... --... -.... ...-- ....- .---- ----- flag形

JarvisOJ Misc webshell分析

分析压缩包中的数据包文件并获取flag。flag为32位大写md5。  神仙们还是强啊,webshell主要看http流,再过滤只剩下post请求 可以使用 http.request.method == POST 然后挨个看,发现一个带着flag字样的,只提交了很少的信息,猜测是base64加密,解码得到一个url,扫图片中的二维码得到flag

JarvisOJ Misc shell流量分析

分析一下shell流量,得到flag 看着一大推的数据记录头都大了,并没有什么wireshark的使用经验,开始胡搞 首先用notepad++打开,搜索flag字样找到了一个类似于python脚本的东西和一长串好像base64加密的字符串 嘿嘿嘿,很开心 读了一下脚本,大概就是说flag的格式hctf{}和加密的的一个函数,那用b

JarvisOJ Misc 炫酷的战队logo

欣赏过了实验室logo,有人觉得我们战队logo直接盗图比较丑,于是我就重新设计了一个,大家再欣赏下? 一开始拿到的BMP文件就打不开,用010打开发现文件头被抹去了,补上了BMP,与文件大小后,发现只是一张普通的图片,就很气 文件头大概是没有什么隐藏信息了,那就剩下会不会在最后加上一个文件了,先扔

JarvisOJ Basic easyRSA

还记得veryeasy RSA吗?是不是不难?那继续来看看这题吧,这题也不难。   已知一段RSA加密的信息为:0xdc2eeeb2782c且已知加密所用的公钥: (N=322831561921859 e = 23) 请解密出明文,提交时请将数字转化为ascii码提交 比如你解出的明文是0x6162,那么请提交字符串ab   提交格式:PCTF{明文字