[BUUCTF]REVERSE——[GWCTF 2019]xxor】的更多相关文章

[GWCTF 2019]xxor 附件 步骤: 无壳,64位ida载入 程序很简单,首先让我们输入一个字符串,然后进行中间部分的操作,最后需要满足44行的if判断,看一下sub_400770函数 得到几个关系式 a1[2] - a1[3] = 2225223423 a1[3] + a1[4] = 4201428739 a1[2] - a1[4] = 1121399208 a1[0] = 3746099070 a1[5] = 550153460 a1[1] = 550153460 利用z3求解器求…
[GWCTF 2019]pyre 附件 步骤: 1.附件是pyc文件,用python打不开,百度后得知用python反编译工具打开,分享一个python反编译在线网站 反编译后是这段代码 #!/usr/bin/env python # visit http://tool.lu/pyc/ for more information print 'Welcome to Re World!' print 'Your input1 is your flag~' l = len(input1) #输入字符串…
伪随机数的爆破,种子爆破 做到了一道题,就是有个伪随机数爆破的漏洞,当时尽管是看到了这两个敏感的函数,但是先去看其他的了,没有看到什么漏洞,所以我当时是准备直接强行爆破,之后看到使用伪随机数爆破的方式来做题. mt_scrand():mt_srand播种 Mersenne Twister 随机数生成器. mt_rand():mt_rand 使用 Mersenne Twister 算法返回随机整数. <?php echo(mt_rand()); #3150906288 echo(mt_rand()…
[BJDCTF2020]Cookie is so stable 进入环境后看到有hint,点击之后查看源代码 提示我们cookie有线索 flag页面是: 需要输入一个username,或许这道题目是cookie伪造,随便输入一个username 输入的结果显示在了页面上,很容易能想到注入,抓包 cookie里面有我们最开始输入的username 可以猜到后端的代码应该是类似于 这样的 Hello %s 将用户cookie里面传过来的user字符串通过模板渲染在页面上,处理不当的话就会导致模板注…
目录 刷题记录:[GWCTF 2019]枯燥的抽奖 知识点 php伪随机性 刷题记录:[GWCTF 2019]枯燥的抽奖 题目复现链接:https://buuoj.cn/challenges 参考链接:2018SWPUCTF-Web全详解 知识点 php伪随机性 如果mt_srand使用同一个seed,生成的随机数是可以爆破出seed的 https://www.openwall.com/php_mt_seed/ 这道题的应用场景中,字符串生成方式是 mt_srand($_SESSION['see…
[GWCTF 2019]re3 关键点:AES MD5 动态调试 smc自解密 gdb使用 跟进main函数 发现一个典型smc异或自解密 可以用idc脚本 或者python patch 或者动态调试查看逻辑 a = [0xCC,0xD1,0x10,0x7C,0xD1,0x18,0x75,0x69,0x99,0x99,0x99,0xD1,0x10,0x24,0x81,0x66,0x66,0x66,0xFD,0xD1,0x12,0x9D,0xBC,0xB1,0x99,0x99,0x99,0xD1,…
[2019红帽杯]easyRE 附件 步骤: ida载入,没有main函数,就先检索了程序里的字符串 发现了base64加密的特征字符串,双击you found me跟进,找到了调用它的函数,函数很长,我们分开看 首先我们输入的数据与它下表异或后等于数组a 数组a里的值,一开始ida分析出来是v17这种的参数,我改了一部分,太多了没有全部修改完,它这边定义了一个长度为36的数组,数值看图 先写个异或脚本,看一下我们输入的字符串是什么 a = [73,111,100,108,62,81,110,9…
1' and '0,1' and '1  : 单引号闭合 1' order by 3--+ : 猜字段 1' union select 1,database()# :开始注入,发现正则过滤 1' and extractvalue(0x0a,concat(0x0a,(database())))# :数据库 :supersqli 0';show databases;#   : 尝试一堆后发现堆叠注入 0';show tables;# 然后就迷了,怎么从表中得到字段呢?后来查资料才知道,show也是可…
这道题(不只这道题以后也一定)要注意控制台中的信息,给出了login.js代码,会把当前用户的用户名和密码填入表单 注册个账号,登录之后给提示不是注入题 浏览一下网站功能,feedback页面可以提交反馈消息, list中可以查看和删除消息内容,发现feedback.php页面有注释 <!-- if(is_array($feedback)){ echo "<script>alert('反馈不合法');</script>"; return false; }…
[ZJCTF 2019]EasyHeap 附件 步骤: 例行检查,64位程序 试运行一下看看程序大概执行的情况,经典的堆块的菜单 64位ida载入,首先检索字符串,发现了读出flag的函数 看一下每个选项的函数 add 这边size的大小由我们输入控制,heaparray数组在bss段上存放着我们chunk的指针 edit,简单的根据指针修改对应chunk里的值,但是这里的size也是由我们手动输入的,也就是说只要我们这边输入的size比add的时候输入的size大就会造成溢出 delete,释…
[ZJCTF 2019]Login 附件 步骤: 例行检查,64位程序,开启了canary和nx保护 2. 试运行一下程序 3. 64位ida载入,检索字符串,在程序里找到了用户名admin和密码2jctf_pa5sw0rd 再次尝试登录,无果 在程序里找到了后门函数,backdoor=0x400e88 c++写的程序,看起来有点费劲,自己看了好久都找到漏洞在哪里,后来借鉴了其他师傅的wp后才发现了猫腻 问题出现在检查密码的那个函数上 反编译出来的伪代码看起来没什么问题 但是我们按下tab,看它…
[第五空间2019 决赛]PWN5 题目网址:https://buuoj.cn/challenges#[第五空间2019%20决赛]PWN5 步骤: 例行检查,32位,开启了nx和canary(栈保护) nc一下,看看程序大概的执行情况,可以看到当输入的长度过长的时候,他的回显会有点问题,猜测输出语句存在问题 32位ida载入,shift+f12查看一下程序里的字符串,看到了 /bin/sh 双击跟进,ctrl+x找到调用这个字符串的函数 关于格式化字符串详细的讲解,看这里 看文章感觉还是不是很…
0x00 知识点 种子爆破 工具 http://www.openwall.com/php_mt_seed 0x01 解题 查看源码进入check.php zOHF0Cxp49 <?php #这不是抽奖程序的源代码!不许看! header("Content-Type: text/html;charset=utf-8"); session_start(); if(!isset($_SESSION['seed'])){ $_SESSION['seed']=rand(0,99999999…
0x00 知识点 phpMyadmin(CVE-2018-12613)后台任意文件包含漏洞 影响版本:4.8.0--4.8.1 payload:/phpmyadmin/?target=db_datadict.php%253f/../../../../../../../../etc/passwd 官方wp: /index.php?target=db_sql.php%253f/../../../../../../../../flag 解题: http://242f8700-d6b8-4323-925…
解题思路 打开网站,登陆框.注册一个用户后再登陆 看样子是注入了,在feedback.php中发现注释 <!-- if(is_array($feedback)){ echo "<script>alert('反馈不合法');</script>"; return false; } $blacklist = ['_','\'','&','\\','#','%','input','script','iframe','host','onload','oner…
解题思路 打开发现需要输入名字,猜测会有sql注入漏洞,测试一下发现单引号被过滤了,再fuzs下看看过滤了哪些 长度为1518和1519的都有过滤,测试一下,感觉不是sql注入了.那还有什么呢,考虑了ssti 使用{{7*7}},我直接傻了,怎么python的后端会报php的错,这里直接思路断了,找了其他的也没有发现有什么.直接看wp了,wp说看到返回头后发现是python写的后端,我这也没看出来有啥啊,希望有师傅知道的留言下,从哪看出来的 作者说加了个php模式的报错和index.php路由.…
记一道堆叠注入的题.也是刷BUU的第一道题. ?inject=1' 报错 ?inject=1'--+ //正常 存在注入的.正常查询字段数,字段数为2.在联合查询的时候给了新提示 ?inject=0' union select 1,2%23 正则匹配过滤掉了经常使用的查询关键字,但是并没有禁用show,那么可以试下堆叠查询. ?inject=0'; show databases;%23 暴出了一些数据库.接着查表. ?inject=0'; show tables;%23 显示有两张表.试着查看字…
[ACTF新生赛2020]Oruga 附件 步骤: 例行检查,64位程序,无壳 64位ida载入,检索字符串,根据提示来到关键函数 14行~18行就是让字符串的前5位是 actf{ ,sub_78A()是关键函数,分析可知应该是迷宫 byte_201020(推荐在16进制界面查看),查看迷宫图形 这个移动方法有点意思,从左上角去往!,点代表路,其他符号是障碍物,点的时候会一直走,遇到障碍物才会停下,手动走一下 flag{MEWEMEWJMEWJM}…
firmware 附件 步骤: 检查文件没有看出什么,ida载入一堆乱码,看了其他师傅的wp才知道要先binwalk对文件进行提取 120200.squashfs这是一个linux的压缩文件 我们需要firmware-mod-kit工具来进行解压. firmware-mod-kit工具:传送门 安装步骤: sudo yum install git build-essential zlib1g-dev liblzma-dev python-magic git clone https://githu…
[WUSTCTF2020]Cr0ssfun 附件 步骤: 例行检查,无壳儿,64位程序,直接ida载入,检索程序里的字符串,根据提示跳转 看一下check()函数 内嵌了几个检查的函数,简单粗暴,整理一下字符串,就是flag flag{cpp_@nd_r3verse_@re_fun}…
[FlareOn6]Overlong 附件 步骤: 例行检查,32位程序,不懂是个啥 32位ida载入,main函数很简单 处理函数 sub_401000 程序只对unk_402008的28位进行了处理,但是我看unk_402008并不止28位,实际长度是0xaf(0xb7-0x8) 运行了一下附件,发现弹框里的数据长度也是28,结尾是:,让人总觉得后面还有东西 将长度修改一下,让他将unk_402008完全处理一下看看,ida修改了不会保存,od动调修改需要将0x1c压入栈中,在栈中修改,我一…
[WUSTCTF2020]level3 附件 步骤: 例行检查,64位程序,无壳 64位ida载入,找到关键函数 看样子是个base64加密,但又感觉没那么简单,再翻翻左边的函数,找到了base64加密变表的函数 将加密表变换一下写个解密exp import base64 table = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' model = list("ABCDEFGHIJKLMNOPQRSTUVW…
[MRCTF2020]hello_world_go 附件 步骤: 例行检查,64位程序,无壳 64位ida载入,检索程序里的字符串,有很多,直接检索flag 一个一个点过去,找到了flag 按a,提取字符串 flag{hello_world_gogogo}…
[GKCTF2020]BabyDriver 附件 步骤: 例行检查,64位程序,无壳 64位ida载入,检索程序里的字符串,看到提示flag是md5(input),下方还看到了类似迷宫的字符串 找到关键函数 从o出发到#结束,碰到*失败,只能走'.',但是这个上下左右md5加密出来的东西不对 看了别人的wp才知道这里由于是sys文件,是由键盘过滤驱动获取键盘扫描码来控制上下左右,而不是ascll码 所以刚刚的上下左右对应的是IKJL 画出迷宫,走一下顺序是LKKKLLKLKKKLLLKKKLLL…
[MRCTF2020]Xor 附件 步骤: 例行检查,32位程序,无壳 32位ida载入,首先检索程序里的字符串,根据字符串的提示,跳转到程序的关键函数 根据flag,跳转到sub_401090函数 可以看到v0和byte_4212c0按位异或,最后得到byte_41EA08就会输出right 看一下byte_41EA08的值 直接写个异或的exp看一下byte_4212c0里的值 a="MSAWB~FXZ:J:`tQJ\"N@ bpdd}8g" s=""…
[FlareOn4]IgniteMe 附件 步骤: 例行检查,32位程序,无壳 32位ida载入 当满足第10行的if条件时,输出G00d j0b!提示我们成功,看一下sub_401050函数 3.sub_401050函数 byte_403180经过10~14行的操作后的值与byte_403000数组相同 v4的值,不大懂这个的结果是什么,动调后看到是0x4 v4返回的是一个定值,动态调试就能出来,v0就是接收函数的整的花里胡哨. 理一下,程序对我们输入的字符串,最后一个字符xor 0x4,然后…
crackMe 附件 步骤: 例行检查,32位程序,无壳 32位ida载入,已知用户名welcomebeijing,解密码,直接看main函数 可以看到程序是个死循环,只有满足sub_404830函数的条件,才能跳出循环 sub_404830函数里要让sub_404830函数返回1,必须要让v13=43924,v13经过了sub_401470的变换,先看sub_401470函数 _DWORD *__usercall sub_401470@<eax>(int a1@<ebx>, _B…
[WUSTCTF2020]level2 附件 步骤: 例行检查,32位程序,upx壳儿 脱完壳儿,扔进32位ida,习惯性的检索字符串,在我没找到什么关键信息,准备去看main函数的时候,将字符串拉到底,看到了一个眼熟的东西 wctf2020{Just_upx_-d}…
[BJDCTF2020]BJD hamburger competition 附件 步骤: 例行检查,64位程序,无壳儿 由于unity是用C++开发的,这里就不用IDA了,直接用dnspy看源码 在BJD hamburger competition_Data\Managed文件夹中找到Assembly-CSharp.dll(进去文件后第一个就是) 这个dll文件是程序的源码,用来存放C++工程. 试运行了一下程序,发现进去后我们可以点击一些"食材",在dnspy里找到有用的Button…
[WUSTCTF2020]level1 附件 步骤: 下载下来的附件有两个,output.txt里是一堆数字 64位ida打开第一个附件,检索字符串,发现了flag字样 双击跟进,ctrl+x交叉引用,找到了关键函数 程序很简单,一开始打开flag文件读出了flag文件里的内容,之后将里面的内容按照12行到18行的语句进行处理后输出. 附件里还有一个文件,output.txt,猜测就是输出后的内容,将里面的数据根据这个算法还原一下flag里的内容 exp a = [198,232,816,200…