Jarvis OJ-Smashes】的更多相关文章

最近做了Jarvis OJ的一部分pwn题,收获颇丰,现在这里简单记录一下exp,分析过程和思路以后再补上 Tell Me Something 此题与level0类似,请参考level0的writeup http://www.cnblogs.com/WangAoBo/p/7591552.html #!/usr/bin/env python # -*- coding: utf-8 -*- __Auther__ = 'M4x' from pwn import * elf = ELF('./guest…
Jarvis OJ - [XMAN]level1 - Writeup M4x原创,转载请表明出处http://www.cnblogs.com/WangAoBo/p/7594173.html 题目: 分析 checksec检查保护机制如下,NX没开,可以通过执行shellcode来get shell 拖到IDA中,查看函数的流程,vulnerable_function函数打印了缓冲区的起始地址,read可以读取0x100个字符,而buf到ret的偏移为0x88 + 0x4 < 0x100,而该el…
Jarvis OJ - class10 -Writeup 转载请注明出处:http://www.cnblogs.com/WangAoBo/p/7552266.html 题目: Jarivs OJ的一道misc,记录这道题的Writeup主要是想记录解题的脚本 分析: 文件下载后是纯数据,binwalk发现为两段zlib压缩后的数据,其中第2段为default compression,这是信息1:strings查看字符串,发现IHDR, RGB, IDAT等和图像相关的字符,这是信息2: 步骤:…
Jarvis OJ - 软件密码破解-1 -Writeup 转载请标明出处http://www.cnblogs.com/WangAoBo/p/7243801.html 记录这道题主要是想记录一下动态调试的过程 题目: 分析: 刚开始拿到这道题目还是想用IDA静态分析,但无奈函数太多找不到关键函数,看别人Writeup也只是说关键函数为sub_401BB0但不知道怎么找到的,欢迎知道的表哥留言告知. 于是尝试拿OD动态调试,用OD打开,中文搜索引擎 -> 搜索UNICODE,可以在搜索到的字符串中…
Jarvis OJ - DD-Hello -Writeup 转载请注明出处http://www.cnblogs.com/WangAoBo/p/7239216.html 题目: 分析: 第一次做这道题时,file查看发现是OS X和IOS的可执行文件,就果断放弃了 后来又一想,OS X是基于FreeBSD的,那Mach-O文件和elf应该也有相通之处,于是就尝试用IDA打开文件,居然真的打开了 函数较少,并且都可F5出伪代码,逐个分析,整理如下: 关键代码: ) ) { i = ; ) { key…
Jarvis OJ - 爬楼梯 -Writeup 本来是想逆一下算法的,后来在学长的指导下发现可以直接修改关键函数,这个题做完有种四两拨千斤的感觉,记录在这里 转载请标明出处:http://www.cnblogs.com/WangAoBo/p/7222012.html 题目: 分析: 先看apk的外部特征,在模拟器中安装apk,如下: 每次点击爬一层楼按钮以爬的楼层会加1,爬到了,看FLAG按钮点击无效,于是猜测需要爬到指定的楼层才可以看到flag. 首先大致浏览apk的java代码(这里使用的…
Jarvis OJ - Baby's Crack - Writeup M4x原创,欢迎转载,转载请表明出处 这是我第一次用爆破的方法做reverse,值得记录一下 题目: 文件下载 分析: 下载后解压有exe和flag.enc两个文件,初步推测flag.enc是用exe加密后的文件,我们只需要分析exe的加密算法,还原flag.enc的明文即可 exe无壳,拖到IDA中用F5大法,找到关键代码: // local variable allocation has failed, the outpu…
Jarvis OJ部分逆向题解 很久没有写博客了,前天上Jarvis OJ刷了几道逆向,保持了一下感觉.都是简单题目,写个writeup记录一下. easycrackme int __cdecl main(int argc, const char **argv, const char **envp) { __int64 v3; // rdi char v5; // [rsp+0h] [rbp-38h] char v6; // [rsp+1h] [rbp-37h] char v7; // [rsp…
[XMAN]level 0 [XMAN]level 1 —— 简单shellcode利用 [XMAN]level 2 [XMAN]level 3 —— ret2libc尝试 [XMAN]level2&level3 x64 [XMAN]level 4 —— DynELF [XMAN]level 5 smashes ——SSP leak & ELF重映射 Test Your Memory ----?level1? /***************************************…
这次除了elf程序还附带一个动态链接库 先看一下,很一般的保护 思路分析 在ida中查看,可以确定通过read函数输入buf进行溢出,但是并没有看到合适的目标函数 但是用ida打开附带的链接库,可以看到system函数和"/bin/sh"字符串都存在 于是思路就确定为read函数溢出->system函数,同时加入参数"/bin/sh" 通过libc.so文件可以得到write.system和/bin/sh的偏移,但system和/bin/sh在内存的地址是未知…
简单利用"/bin/sh"夺权 简单看一下 放到ida中发现了"/bin/sh"串,和system函数,可以利用== 所以只要在vuln函数返回时跳转到system函数,同时添加参数"/bin/sh"就可以实现啦 #!/usr/bin/env python # -*- coding: utf-8 -*- from pwn import * io = remote("pwn2.jarvisoj.com",9878) elf =…
100分的pwn 简单查看一下,果然还是比较简单的 放到ida中查看一下,有明显的溢出函数,并且在函数中打印出了字符串的地址,并且字符串比较长,没有NX保护 所以我们很容易想到构造shellcode,在栈中执行shellcode拿shell权限 shellcode是一段恶意代码,在没有NX保护程序中,可能作为输入而写进栈,之后运行到此处时可以执行shellcode指令从而达到目的 所以我们先截取buf的地址,在buf中写入夺shell的shellcode,之后再用buf的地址覆盖函数返回地址 从…
差不多最简单的pwn了吧,不过本菜鸟还是要发出来镇楼 分析一下,checksec 查看程序的各种保护机制 没有金丝雀,没有pie 执行时输出Hello,World,在进行输入,溢出嘛  开工 丢到ida里看看,先看看有价值的strings,除了输出的helloworld 还发现了"/bin/sh",获取shell的函数都写好啦,是callsystem 继而发现在main函数执行时调用的vulnerable_function()存在不安全的read输入,可以看到buf的长度为0x80+0…
[61dctf] androideasy 164求解器 50 相反 脚本如下: s='' a=113, 123, 118, 112, 108, 94, 99, 72, 38, 68, 72, 87, 89, 72, 36, 118, 100, 78, 72, 87, 121, 83, 101, 39, 62, 94, 62, 38, 107, 115, 106 for i in range(len(a)): s+=chr(a[i]^(0x17)) print(s) [61dctf] stheas…
看图片的隐写术自闭,本来想看一看jarvisoj 的basic放松一下心情,结果一道题就做了一晚上qwq 首先看到这道题的时候想到的是凯撒密码(这其实是Google之后才知道这个名字的)枚举了26种位移,发现都不可读. 心态爆炸,只能猜到是以一种奇怪的方式做一一替换后的结果,依稀想起了之前听说过的词频分析法,不会操作,就可耻地看了题解. get提示替换式密码,而且题目十分良心地没有去掉空格,难度下降了不少,有单独的一个x,推测是a,nit出现的次数极多,推测是the,在python中不断地替换,…
首先 老规矩,把软件拖到Ubuntu里checksec一下文件 然后知道了软件位数就放到IDA32里面... 熟悉的函数名... 缘真的妙不可言... 然后看了下vulnerable_function函数的栈结构 算了下 vulnerable_function中的read函数准备给buf 0x100的空间 但是buf却用了0x88+0x4就结束了vulnerable_function函数.. (0x88 + 0x4)<(0x100) 所以这里出现了栈溢出 但是,我F12+Shift一下却没发现有…
0x00前言 发现一个很好的ctf平台,题目感觉很有趣,学习了一波并记录一下 https://www.jarvisoj.com 0x01 Port51 题目要求是用51端口去访问该网页,注意下,要用具有公网的计算机去连,我这里用的我的腾讯云服务器去访问的,本地并不能反回正确结果,因为本地私有地址从代理服务器出去后,使用的是代理服务器的端口,这个端口往往不会是51 curl --local-port http://web.jarvisoj.com:32770/ 0x02 LOCALHOST 题目提…
Base64? 题目描述: GUYDIMZVGQ2DMN3CGRQTONJXGM3TINLGG42DGMZXGM3TINLGGY4DGNBXGYZTGNLGGY3DGNBWMU3WI=== Base32解码得到 504354467b4a7573745f743373745f683476335f66346e7d 貌似是十六进制,hackbar直接转换得到flag PCTF{Just_t3st_h4v3_f4n} 关于USS Lab 题目描述: USS的英文全称是什么,请全部小写并使用下划线连接_,并…
0x00前言: udf提权是通过数据库来实现获取目标的管理员的shell,来达到从低权限提权到高权限 0x01什么是udf: udf(Userdefined function)是用户自定义函数 在mysql中函数是什么,比如mysql中常见的sleep(),sum(),ascii()等都是函数 udf就是为了让我们开发者能够自己写方便自己函数,它有3种返回值,这三种分别是STRING,INTEGER,REAL STRING 字符型 INTEGER 整型 REAL 实数型 定义格式 #创建自定义函…
准备知识引用自https://www.freebuf.com/articles/rookie/182894.html 0×01 利用思路 ret2libc 这种攻击方式主要是针对 动态链接(Dynamic linking) 编译的程序, 因为正常情况下是无法在程序中找到像 system() .execve() 这种系统级函数 (如果程序中直接包含了这种函数就可以直接控制返回地址指向他们,而不用通过这种麻烦的方式). 因为程序是动态链接生成的,所以在程序运行时会调用 libc.so (程序被装载时…
0x01  什么是PLT和GOT 名称: PLT : 程序链接表(PLT,Procedure Link Table) GOT : 重局偏移表(GOT, Global Offset Table) 缘由: 这缘起于动态链接,动态链接需要考虑的各种因素,但实际总结起来说两点: 需要存放外部函数的数据段  —— PLT 获取数据段存放函数地址的一小段额外代码 —— GOT 如果可执行文件中调用多个动态库函数,那每个函数都需要这两样东西,这样每样东西就形成一个表,每个函数使用中的一项. 存放函数地址的数据…
RSA 学习档案 基本原理 随机选择两个质数p,q模数n=p*qφ(n)=(p−1)(q−1)选择加密指数e: 1 < e < φ(n)计算机密指数d: e*d % φ(n) = 1c = m ^ e % nm = c ^ d % n 常见攻击方式 模数分解 1.直接分解 n小于256bit可以本地暴力分解.去factordb查询是否有已经分解成功的结果. 2.给出多个n,可以尝试计算n之间的最大公约数. from libnum import * n1 = 905101396540408448…
强网杯2018 - nextrsa - Writeup 原文地址:M4x@10.0.0.55 所有代码均已上传至我的github 俄罗斯套娃一样的rsa题目,基本把我见过的rsa套路出了一遍,值得记录一下 level 0 QWB_nextrsa [master●] python exp.py [+] Opening connection to 39.107.33.90 on port 9999: Done [*] Switching to interactive mode ok! Firstly…
如何在linux主机上运行/调试 arm/mips架构的binary 原文链接M4x@10.0.0.55 本文中用于展示的binary分别来自Jarvis OJ上pwn的add,typo两道题 写这篇教程的主要目的是因为最近想搞其他系统架构的pwn,因此第一步就是搭建环境了,网上搜索了一波,发现很多教程都是需要树莓派,芯片等硬件,然后自己编译gdb,后来实践的过程中发现可以很简单地使用qemu实现运行和调试异架构binary,因此在这里分享一下我的方法. 主机信息: 以一台新装的deepin虚拟…
28题 <!DOCTYPE html> <html> <head> <title>Web 350</title> <style type="text/css"> body { background:gray; text-align:center; } </style> </head> <body> <?php $auth = false; $role = "gue…
先来了解一下关于session的一些基础知识 什么是session?在计算机中,尤其是在网络应用中,称为"会话控制".Session 对象存储特定用户会话所需的属性及配置信息.这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去.当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象.当会话过期或被放弃后,服务器将终止该会话.session是如何起作…
搭建 OJ 需要的知识(重要性排序): Java SE(Basic Knowledge, String, FileWriter, JavaCompiler, URLClassLoader, SecurityManager, synchronized) Java Virutal Machine(Classpath,Policy) Servlet(HttpServlet) JSP(Session, JSP, EL, JSTL, Custom Tags) Tomcat(Classpath) Java…
扎克伯格本周二在facebook发布了一篇文章,介绍自己利用个人时间开发的一套在自己家里使用的AI系统,并将它命名为Jarvis,对!就是电影钢铁侠里的AI助手Jarvis. 文章并没有讲细节的技术coding,更像一篇人工智能技术在工程应用上的科普. 实现了哪些功能 能够通过手机或者电脑向Jarvis发出文本或者语音命令,来控制家里的灯光,温度,电器,音乐播放和安全防卫; 能够学习了解Mark的某些兴趣(比如听歌),能够学习新的词语和概念. 使用了哪些人工智能技术 自然语言处理,语音识别,人脸…
前言 做过杭电.浙大或是北大等ACM题库的人一定对“刷题”不陌生,以杭电OJ为例:首先打开首页(http://acm.hdu.edu.cn/),然后登陆,接着找到“Online Exercise”下的“Problem Archive”,然后从众多题目中选择一个进行读题.构思.编程.然后提交.最后查看题解状态,如果AC了表示这一题被攻克了,否则就要重做了~一般情况下,“刷题”要求精神高度集中且经验丰富,否则很难成功AC,有时候甚至做一题要浪费半天的时间!(有时网速卡了,比抢火车票还要急!) 楼主在…
import bs4 import requests import urllib2 import time import base64 session=requests.Session() response=session.get('http://oj.blue-whale.me:23331/captcha.php') soup=bs4.BeautifulSoup(response.text) s=soup.find('img') #get the img tag #print s #we ge…