攻防世界 serial-150 IDA动调

news/2024/10/14 4:23:45

比较完整的做题记录吧,很基础,当作过一遍题目,大佬请飘过

题目

 


分析过程

丢到PE里面,是一个64位的ELF

 

丢到IDA里面,查看字符串,发现线索

 但是双击进去,不是汇编。是一个只读的rodata段

 左边函数也不多,发现没有main函数,先点进去启动的start函数看看,发现main函数

 点进去直接是标红的汇编,下面是一堆花指令

先看看最前面的汇编

采用的是rbp寻址,rsp提升0x200H,开辟出一段缓冲空间

接下面两端不会改变栈,就是根据计数器rcx,重复执行

用gdb调试一下更直观,当执行到rep指令时候,重复 'n' 步过,RCX的值递减到0为止,RDI的值以'0x8h'递增

 

 

运行程序看看。(嫌弃名字太长,改成1)

 最近刚好在学pwn,用pwn工具看看main函数

下面还有一些,我没继续截图了

结合IDA,发现花指令的地址是 0x400A00 

而在gdb中发现 0x400A00 地址处是存在汇编的,中间还有一些(bad)部分

后来我看大佬的wp。发现可能是IDA的问题,有很多大佬的wp没有花指令部分

下面红框部分,在IDA中是 'E',用于比较输入内容合不合要求的,是关键部分,但是gdb中很难看出来,这个工具不行

 后面也是看wp,说存在动态函数,在运行中会发生改变,需要IDA动调


 IDA动调

准备工作,没有window debugger,只能LInux debugger

不知道哪里是关键汇编,以防万一从main函数汇编第一句开始断点

 一直F8步过,跳出下面的框就选YES

 发现停在下面一行就动不了

与此同时,kali中

 可以看出这里就是输入了,随便输入一个,回车继续调试

 继续F8,再点一次YES后继续F8,来到下面地方

 着重看下面的汇编:

  • rbp-200h:也就是rsp栈顶指针所指向的地方,是新开辟出的缓冲区的顶部,结合其汇编指令上面就是输入,猜测里面放了我们输入的东西,
  • call    _strlen:很明显是一个有关输入字符串长度的函数
  • cmp     rax, 10h:这个指令更多用作比较,如果rax存储的值与0x10h相等,ZF=1
  • jz      short near ptr loc_400A3B+1:jz指令在ZF=1的时候跳转

这段汇编的作用:判断输入的字符串的长度是不是0x10h,也就是16

重新调试,输入一个长度为16的字符串,比如:abcdefghijklmnop

符合跳转条件,到下面地方

 双击看看栈

发现是输入的第一个字符,并且需要等于 'E'

重新调试,输入:Ebcdefghijklmnop

条件符合,跳转实现,来到下面

 分别看看[rbp-200h]与[rbp-1F1h]的栈

edx里面放的是第一个字符

 eax里面放的是最后一个字符

add eax, edx
cmp eax, 9Bh

两者相加要等于 0x9B h

所以最后一个字符为:V

重新调试,输入:EbcdefghijklmnoV,来到新的地方

 看看栈,rbp-1FFh是输入的第二个字符,且要等于 'Z'

 重新调试,输入:EZcdefghijklmnoV,来到新的地方

这判断逻辑不就和之前是一样吗?

看看rbp-1F2h的栈位置,是倒数第二个字符,且正数第二与倒数第二相加要等于9Bh

所以倒数第二个字符是:A

 

 

后面的逻辑都是一样的:给出一个字符,是正数第几个,然后用0x9Bh减去,就获得了倒数第几个

这里就不累赘罗列出来

直接把调试记录放出来

IDA Linux 64-bit remote debug server(ST) v7.5.26. Hex-Rays (c) 2004-2020
Listening on 0.0.0.0:23946...
2024-05-02 01:55:05 [1] Accepting connection from 192.168.136.1...
Looking for GNU DWARF file at "/usr/lib/debug/.build-id/77/e92e8b1bd4f26641bab4dbf563037a7b9538d2.debug"... no.
Please Enter the valid key!
123456
Serial number is not valid!
2024-05-02 02:30:53 [1] Closing connection from 192.168.136.1...
2024-05-02 02:31:01 [2] Accepting connection from 192.168.136.1...
Looking for GNU DWARF file at "/usr/lib/debug/.build-id/77/e92e8b1bd4f26641bab4dbf563037a7b9538d2.debug"... no.
Please Enter the valid key!
abcdefghijklmnop
Serial number is not valid!
2024-05-02 02:35:46 [2] Closing connection from 192.168.136.1...
2024-05-02 02:35:48 [3] Accepting connection from 192.168.136.1...
Looking for GNU DWARF file at "/usr/lib/debug/.build-id/77/e92e8b1bd4f26641bab4dbf563037a7b9538d2.debug"... no.
Please Enter the valid key!
Ebcdefghijklmnop
Serial number is not valid!
2024-05-02 02:46:00 [3] Closing connection from 192.168.136.1...
2024-05-02 02:46:01 [4] Accepting connection from 192.168.136.1...
Looking for GNU DWARF file at "/usr/lib/debug/.build-id/77/e92e8b1bd4f26641bab4dbf563037a7b9538d2.debug"... no.
Please Enter the valid key!
EbcdefghijklmnoV
Serial number is not valid!
2024-05-02 02:48:59 [4] Closing connection from 192.168.136.1...
2024-05-02 02:49:00 [5] Accepting connection from 192.168.136.1...
Looking for GNU DWARF file at "/usr/lib/debug/.build-id/77/e92e8b1bd4f26641bab4dbf563037a7b9538d2.debug"... no.
Please Enter the valid key!
EZcdefghijklmnoV
Serial number is not valid!
2024-05-02 02:56:47 [5] Closing connection from 192.168.136.1...
2024-05-02 02:56:50 [6] Accepting connection from 192.168.136.1...
Looking for GNU DWARF file at "/usr/lib/debug/.build-id/77/e92e8b1bd4f26641bab4dbf563037a7b9538d2.debug"... no.
Please Enter the valid key!
EZcdefghijklmnAV
Serial number is not valid!
2024-05-02 02:57:42 [6] Closing connection from 192.168.136.1...
2024-05-02 02:57:43 [7] Accepting connection from 192.168.136.1...
Looking for GNU DWARF file at "/usr/lib/debug/.build-id/77/e92e8b1bd4f26641bab4dbf563037a7b9538d2.debug"... no.
Please Enter the valid key!
EZ9defghijklmnAV
Serial number is not valid!
2024-05-02 02:58:30 [7] Closing connection from 192.168.136.1...
2024-05-02 02:58:32 [8] Accepting connection from 192.168.136.1...
Looking for GNU DWARF file at "/usr/lib/debug/.build-id/77/e92e8b1bd4f26641bab4dbf563037a7b9538d2.debug"... no.
Please Enter the valid key!
EZ9defghijklmbAV
Serial number is not valid!
2024-05-02 02:59:31 [8] Closing connection from 192.168.136.1...
2024-05-02 02:59:32 [9] Accepting connection from 192.168.136.1...
Looking for GNU DWARF file at "/usr/lib/debug/.build-id/77/e92e8b1bd4f26641bab4dbf563037a7b9538d2.debug"... no.
Please Enter the valid key!
EZ9defghijkl7bAV
Serial number is not valid!
2024-05-02 03:00:22 [9] Closing connection from 192.168.136.1...
2024-05-02 03:00:23 [10] Accepting connection from 192.168.136.1...
Looking for GNU DWARF file at "/usr/lib/debug/.build-id/77/e92e8b1bd4f26641bab4dbf563037a7b9538d2.debug"... no.
Please Enter the valid key!
EZ9dmfghijkG7bAV
Serial number is not valid!
2024-05-02 03:01:15 [10] Closing connection from 192.168.136.1...
2024-05-02 03:01:16 [11] Accepting connection from 192.168.136.1...
Looking for GNU DWARF file at "/usr/lib/debug/.build-id/77/e92e8b1bd4f26641bab4dbf563037a7b9538d2.debug"... no.
Please Enter the valid key!
EZ9dmqghij9G7bAV
Serial number is not valid!
2024-05-02 03:02:17 [11] Closing connection from 192.168.136.1...
2024-05-02 03:02:17 [12] Accepting connection from 192.168.136.1...
Looking for GNU DWARF file at "/usr/lib/debug/.build-id/77/e92e8b1bd4f26641bab4dbf563037a7b9538d2.debug"... no.
Please Enter the valid key!
EZ9dmq4hig9G7bAV
Serial number is not valid!
2024-05-02 03:03:09 [12] Closing connection from 192.168.136.1...
2024-05-02 03:03:10 [13] Accepting connection from 192.168.136.1...
Looking for GNU DWARF file at "/usr/lib/debug/.build-id/77/e92e8b1bd4f26641bab4dbf563037a7b9538d2.debug"... no.
Please Enter the valid key!
EZ9dmq4c8g9G7bAV
Serial number is valid :)
2024-05-02 03:04:09 [13] Closing connection from 192.168.136.1...

flag

EZ9dmq4c8g9G7bAV

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/26832.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

elementui使用

1 # 1 开源的样式库,方便在vue中使用2 -elementui:饿了么团队开源的 web端3 https://element.eleme.cn/#/zh-CN4 -vant:有赞团队,移动端5 https://vant-ui.github.io/vant/#/zh-CN6 -ant design:阿里团队7 https://1x.antdv.com/docs…

2024/5/2

完成了河北科技查询系统全部内容

cpp字符串相关

字符串相关 文章参考: [详解-字符串] C++必知必会 字符串-string常用各种操作解析 - 知乎 (zhihu.com) C++ 字符串(string)常用操作总结 - 知乎 (zhihu.com) c++读取字符串和字符的6种函数_c++获取字符串的每个字符-CSDN博客 头文件 #include <string>定义字符串 stri…

响应式动漫音乐/个人博客杂志主题国漫FM模板

国漫FM主题V1.8是以Ajax加以CSS动画的方式,很好的将优雅的设计感和极度精简的代码同时表现了出来,进而缔造出这样一款十分经典的名为Always for you的WordPress博客主题。正如作者自己所言:如果你想让你的WordPress博客看起来个性十足。FM主题为响应式格子布局(瀑布流),是一…

WordPress CVE-2022-4230复现分析

前言 开始CVE审计之旅 WP Statistics WordPress 插件13.2.9之前的版本不会转义参数,这可能允许经过身份验证的用户执行 SQL 注入攻击。默认情况下,具有管理选项功能 (admin+) 的用户可以使用受影响的功能,但是该插件有一个设置允许低权限用户也可以访问它,其实就是没对admi…

光影看图 v4.5.6.32 绿色版

更新流水:2024.04.30:跟进官方 4.5.6.32 , 第一版 修改内容:by.星罗月兔&DxFans去校验(方案来自@星罗月兔);去更新;去多余组件及无用菜单!下载地址:https://down.neoimaging.cn/neoimaging/NeoViewerSetup_10000_4.5.6.32.exe本文来自博客园,作者:萌面蛋饺,转载请注明…

js逆向实战之某证信Accept-Enckey参数加密解析

url:https://webapi.cninfo.com.cn/#/marketDataDate 分析过程抓包,主要关注图中标记的数据包,它的回显数据是我们所需要的。但在该数据包的请求中有一个Accept-Enckey参数是经过加密的,需要知道其加密的逻辑。全局搜索sysapi/p_sysapi1007,只有一处符合的。找到对应地方,…

vite vue-cli 读取文件原始内容 使用base64内容的文件

新建文件 img.dataurl 中存放图片base64 <img class=img :src=dataurl alt= /> import dataurl from ./img.dataurl data(){ return { dataurl:dataurl } } vue.config.js module.exports=defineConfig({ configureWebpack:{module:{rules:[{test:/\.dataurl$/,loader…