知识点:(算提示吧) caidao使用的是POST传数据,那么直接过滤TCP协议 然后逐流逐流看 在第七个流发现有一长长串字符,仔细观察发现都是大写字母和数字,复制到文本 导入010editor,发现对应的文件头是JEIF,那么就另存为jpg文件 保存下来得到一个密码: 但是差一个加密
一个png图片,一个加密的文本: 图片暂时提供不了什么东西 用ZipCenOp试试看他是不是伪加密 发现是伪加密,得到文本: 得到一段字符 使用网站解码得到flag: https://ctf.bugku.com/tool/todousharp flag{w0_fo_ci_Be1}
前言 刷题平台:BUUCTF yyds binwalk:固件分析 Ziperello:字典爆破 步骤 本以为还是手机扫码FLAG,得到secret is here 拿binwalk扫,存在两个东西 猜测文件在4number.txt里面,需要通过1D7.zip,不过1D7.zip被锁了,进行密码爆破 CTF{vjpw_wnoei}
1、一行代码 ?php echo !( !(include "flag.php")|| (!error_reporting(0))|| stripos($_GET['filename'],'.')|| ($_GET['id']!=0)|| (strlen($_GET['content'])<=7)|| (!eregi("ctfsho".substr($_GET[
有: 猪圈密码 圣堂武士密码 标准银河字母 解出来FGCPFLIRTUASYON最后提示说栅栏,那就栅栏解密,分栏为3时解出来 FLAGISCRYPTOFUN flag{CRYPTOFUN}
题目给了一个key和密文: 使用010editor得到文件的二进制格式,然后将两个异或,脚本: a = '011000010111001101100001011001000111001101100001011100110110010001100001011100110110010001100001011100110110010001100001011100110110010001100001011100110110010001100001011100
第一次做JAVA的逆向题,差点直接把class文件拖进IDA了233~ 百度了一下java逆向,发现它只需要反编译即可:Java反编译工具-JD-GUI-简单好用 - 简书 (jianshu.com) 下载了工具JD-GUI,直接双击然后拖入文件即可食用(划掉)使用 完全不会java!不过勉强看得懂英文(不是! 先看开头结尾,输入一个str,结
题目链接 https://buuoj.cn/challenges#%E6%88%91%E7%88%B1Linux 解题过程 题目图片无法显示,用010Editor打开。文件头错误,修复下。 好像没有要的东西。在文件尾发现冗余的数据: 是些奇怪的字符串,复制下来保存。 保存为data.txt 不知所以然,根据大佬的提示使用TrID工具分析
打开压缩文件后 然后进行公钥解析 分解质因数n 然后由工具得d 最后拿出我珍藏已久的脚本 import rsa e= 65537 n= 86934482296048119190666062003494800588905656017203025617216654058378322103517 p= 285960468890451637935629440372639283459 q= 30400874160460192449
hjmb 2wq ghnv 90plki 90plki iol,mj -=]';p 0-[;lo qwsz wedxza wedxza 23esaq 90plki 45tfde erfcxs =\'[刚看到题目的keyboard,以为是键盘密码,结果解不出来,然后低头看了看键盘,发现这几个字符连起来都是一个圈,会不会是圈内的字母,结果和前面的n1book一对比,行!所以flag:fla
直接 base64 解码得到 flag
hex分析,PK尾 改后缀得zip: 这个是个jpg,习惯性看下属性,属性会有很多数据: 得到第一部分, 第二部分要回头使用zsteg分析stego.png zsteg安装: git clone https://github.com/zed-0xff/zsteg cd zsteg gem install zsteg 如果第一个clone失败,试试下面这个
未知高版本libc的堆问题 题目给了libc但下不来。github在国内没办法。 一般2.23的堆没有tcache第一个块在010,2.27以后加了250的tcache第1个在260,2.31以后在2a0 可以先泄露堆地址再根据大概的版本往下走。 先按2.27在本地作成,发现远程不能用,虽然小于2.31但tcache不能直接doublef
进入网站就是代码,开始审计 <?php if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR']; } if(!isset($_GET['host'])) { highlight_file(__FILE__); } else { $host
web 第五题 [极客大挑战 2019]LoveSQL 打开靶场 查看源码有无帮助 发现check.php访问 这就是检查输入的源码,没有什么作用 直接尝试永真式进行登录 1' or 1=1 # 登陆成功并得到一串密文,进行解密尝试 尝试了很多解密都无法解出 更换方法尝试,既然存在注入,直接猜解字段数
看了半天没看明白,第一次看这东西,后来看了下exp原来如果简单 puts("THOU ART GOD, WHITHER CASTEST THY COSMIC RAY?"); v3 = 1; if ( fgets(s, 50, stdin) ) { v4 = strtol(s, 0LL, 0); v5 = v4; v6 = v4 >> 3; v7 = (void *)((v4 >> 3) & 0xFFFFFF
又是一个虚拟机的题,干到一半想放弃了,搜不到wp又回来慢慢作。 先看题目: for ( byte_6024C1 = 0; ; ++byte_6024C1 ) { byte_6028E1 = byte_6024E0[byte_6024C1]; if ( !byte_6028E1 ) break; byte_6028E0 = 0; if ( byte_6028E1 == 62 )
因为人太菜了这个题做了蛮久的,网上能搜到的 wp 也不是很多,而且几乎都省略了动态调试部分,通过这个题也算是熟悉了一下动调,因此记录下来 题目描述:小张从网上下载到一个黑客软件,然而开发者并不打算共享,所以小张注册了一个用户名叫welcomebeijing,但是密码需要进行逆向计算,请求出密码,进
1.拿到文件,一共有exe文件和dll文件、lib文件三个文件 dll文件和lib文件不知道有什么用,所以先IDA打开exe文件: 里面有一个关键的函数String_to_long,对应的加密过程是在动态链接库里,所以我们用IDA打开dll文件,找到String_to_long这个函数: 第64行有一个"-------Checking-----",我们
难度不大,要求输入n个数,但栈空间只能放127个数,要求输入数<127但可以输入负数,其它地址在输入debug时可以全部得到。 这里由于没有中途退出机制,需要精确的输入一个负数表示执行次数 v6 = get_long("Number of numbers to add"); if ( v6 <= 127 ) { get_data(v8, (unsign
程序中有多处反调试,还有两处check判断,第一个check函数中有三段解密,最终还原出一个dll文件,然后通过第二个check函数,向dll文件中传入密文,并进行AES解密,解密的结果即为flag。 主函数: 1.查壳: 64位,C++,无壳。 IDA64打开,发现程序有基址随机化,去除: 详细请参考:去除程序的基址随机化_
文件直接打不开,拖进hex看: 发现文件头错误,修改文件头:52 61 72 打开有一个docx文件 这里什么都没有,但是题目又是音符,所以肯定有什么藏起来了, 进入选项,打开 勾选隐藏文字,然后就可以看到音符了。 直接百度音符解密,就有在线解密网站,但是有个问
难度不大,坑点巨多。 全程没几句话,一个明显的printf+溢出 int __cdecl main(int argc, const char **argv, const char **envp) { char format[64]; // [rsp+10h] [rbp-40h] BYREF printf("Hola %s bois\n", "sup"); puts("Give me some inputz: "); fflus
文件包含类题目,关键在于阅读代码: highlight_file(__FILE__); if(isset($_GET['file'])) { $str = $_GET['file']; include $_GET['file']; } highlight_file(FILE); 语法高亮一个文件。 isset 判断一个变量是否已设置, 即变量已被声明,且其值不为 null。 可以理解
总的来说这是一个64位orw的题 开头先在主函数里分配了一个很大的空间 1 __int64 __fastcall main(int a1, char **a2, char **a3) 2 { 3 mmap((void *)0x123000, 0x1000uLL, 6, 34, -1, 0LL); 4 sub_400949(); 5 sub_400906(); 6 sub_400A16(); 7 return 0LL; 8 }