言语星空

uf4te 站长
Windows 11 · Chrome129.0
发布于 2024-10-21 · 湖北

@某不知名网友: 调试方法在文章里说明了:漏洞分析

如果确实是按照文章做的还是无法连接,可以检查以下步骤:看看 gdbsever 交叉编译是否正常、gdb 与 gdbsever 版本是否一致(如果是无法连接,与版本关系应该不大)、宿主机与 QEMU 虚拟机能否正常通信(一般 QEMU 虚拟机重启之后可能需要重新设置 IP 才能与宿主机连接)、前期网桥相关的操作是否配置好

某不知名网友
Windows 10 · Chrome129.0
发布于 2024-10-21 · 未知

@某不知名网友: 师傅,能问一下你是如何在系统级调试的吗?我使用gdb和gdbserver远程连接不成功,可能是gdb和gdbserver版本不匹配,然后没法调试就算不出libc基址,就卡在这里了,,

uf4te 站长
Linux x86_64 · Chrome130.0
发布于 2024-10-21 · 湖北

@butt3rf1y: 谢谢你的支持哈哈哈,加油weibo_love

butt3rf1y
Windows 11 · Chrome129.0
发布于 2024-10-20 · 四川

博主写的文章条理好清晰,博客也好好看,看着好丝滑,呜呜呜呜呜二进制逆向好难啊weibo_sob学得我道心破碎weibo_sad好希望有一天能成为博主这样厉害的人weibo_sad

某不知名网友
Windows 10 · Chrome129.0
发布于 2024-10-18 · 未知

@uf4te: 感谢回复,不知道什么原因呢,先把原因归结到qemu版本上吧,我是直接用apt安装的qemu-mips-static,等有时间再来试试编译安装。

uf4te 站长
Windows 11 · Chrome129.0
发布于 2024-10-15 · 湖北

@某不知名网友: 感谢反馈,那这就很奇怪了,你的情况应该是 qemu 用户态的原因,但我当初确实是修改了偏移地址后就正常 getshell 了,我所做的操作应该都记录在文章里了,会不会是 qemu 版本原因?

某不知名网友
Windows 10 · Chrome129.0
发布于 2024-10-15 · 未知

师傅,我这边使用qemu-mipsel-static依然还是无法getshell,gdb调试发现程序也确实执行到了system,参数也对,但在system函数中没有走到execl(“/bin/sh”, &off_5A450, &off_5A454, a1, 0)这个分支,if条件是由fork()函数确定的,是不是像winmt师傅说的那样用户态qemu模拟不支持多线程导致fork()失败,可能您那边getshell成功是因为别的原因?

Vict0ry+
Windows 10 · Chrome129.0
发布于 2024-10-09 · 未知

@uf4te: 好的,太感谢了。我在研究研究weibo_dog_annoyed

uf4te 站长
Windows 11 · Chrome129.0
发布于 2024-10-08 · 湖北

@某不知名网友:

③ 要得到初始的 Str1[i] 的值,只需将 Str1[i] % 96 或 Str1[i] % 96 - 96 的结果加上 n 个 96,如果加上 n 个 96 后的结果在 32 ~ 127 范围内,那么这个结果就是初始的 Str1[i] 的值

你说的这种情况应该减 n 个 96,这里 80 % 96 + 113 - 96 + 32 = 129 还要再减一个 96 才在 [32,127] 之间,也就是 129 - 96 = 33,与 (80 + 113) % 96 + 32 = 33 就相等了

因为这里是逆向求余,所以可能会涉及到余数的 n 倍的问题,为了严谨已经将原文改为 Str1[i] = Str1[i] % 96 + Str1[(i * i + 123) % 21] - n * 96 + 32 了,感谢反馈 weibo_blush

某不知名网友
Windows 11 · Edge128.0
发布于 2024-10-08 · 未知

@uf4te: 我假设一种情况,如果有一次循环加密时的明文Str1[i]=80,Str[(i*i+123)%21]=113,那么按题目的加密来看,加密后的密文是(80 + 113)%96+32=33。如果按这个理解,那加密是不是80%96+113-96+32=129,可前后不等weibo_quiet

uf4te 站长
Windows 11 · Chrome129.0
发布于 2024-10-08 · 湖北

@Vict0ry+: 按道理说只使用第一个也是可以的,因为前后两个 sprintf 都可以溢出并且传参都是 uid,但这里讨论的是如果能走到第二个 sprintf 的话需要满足什么条件,如果非要严格说只使用第一个 sprintf 的话那就得保证程序不会执行到第二个 sprintf(实际第二个执不执行都是一回事,只是可能溢出长度有所区别),感兴趣的话可以尝试一下

Vict0ry+
Windows 10 · Chrome129.0
发布于 2024-10-08 · 未知

师傅,是这样的,我在复现这个漏洞,想请教一下:就是这边的漏洞第一个 sprintf 不可以溢出吗?利用点只能是第二个 sprintf 咩?

uf4te 站长
Windows 11 · Edge129.0
发布于 2024-10-03 · 湖北

@某不知名网友: 是的敲错了哈哈哈,谢谢指正 weibo_grin

某不知名网友
Windows 11 · Edge129.0
发布于 2024-10-03 · 未知

sudo: dkpg: command not found
这条应该是
sudo: dpkg: command not found

某不知名网友
Windows 10 · Chrome129.0
发布于 2024-10-02 · 湖北

遇事不决,动态调试…哈哈哈哈weibo_laugh

某不知名网友
Windows 10 · Chrome129.0
发布于 2024-10-02 · 湖北

虽然才刚学ret2,但是感觉GDB太重要了

某不知名网友
Windows 11 · Chrome129.0
发布于 2024-09-28 · 未知

感谢站长这篇文章, 让我看到了ADM(Android Device Monitor)的替代操作! 不然总是因为JDK版本太高, 且新版Android sdk删除了ADM工具, 现有教程并没有教如何在没有ADM的帮助下, 找到JDWP需要转发的目标端口, 使用旧版ADM和JDK1.8也只能反复修改环境变量…
我贴出自己的解决办法:

@echo off
rem Copyright © 2012 The Android Open Source Project
rem
rem Licensed under the Apache License, Version 2.0 (the “License”);
rem you may not use this file except in compliance with the License.
rem You may obtain a copy of the License at
rem
rem http://www.apache.org/licenses/LICENSE-2.0
rem
rem Unless required by applicable law or agreed to in writing, software
rem distributed under the License is distributed on an “AS IS” BASIS,
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rem See the License for the specific language governing permissions and
rem limitations under the License.

rem don’t modify the caller’s environment
setlocal
--------------------主要是这里添加了自动修改java环境变量的语句------------
set JAVA_HOME=C:\Users\daily\MyFile\asset\java\1.8
set Path=%JAVA_HOME%\bin;%Path%

rem Change current directory and drive to where the script is, to avoid
rem issues with directories containing whitespaces.
cd /d %~dp0

for /f “delims=” %%a in (‘bin\archquery’) do set vmarch=%%a

start lib\monitor-%vmarch%\monitor

uf4te 站长
Windows 11 · Chrome129.0
发布于 2024-09-24 · 湖北

@awigwu76: 这是 32 位程序栈上传递参数时,call 和 ret 函数调用方式的区别,在将 “/bin/sh” 作为 system() 参数时,中间需要垫一个返回地址,这里的 4 字节其实就是作为返回地址的,因为 CTF 目的就是拿到 shell,所以拿到 shell 以后返回到哪里就所谓了,你也可以把这 4 字节改成 main 地址,就可以让主函数执行两次

具体可以看一下这篇文章,讲的挺详细的:PWN之所谓的堆栈平衡,论layload中添加pop exx; ret 指令的作用

awigwu76
Windows 11 · Chrome128.0
发布于 2024-09-23 · 江苏

我想问一下,“这里需要用 4 个字节作为 system(“/bin/sh”) 的返回地址,使栈保持平衡”,这句话,是哪里的操作让栈不平衡了,小可以为我解答一下吗

某不知名网友
Windows 11 · Edge127.0
发布于 2024-09-22 · 湖南

见过写的最详细的了,有点好奇大佬是怎么学习堆的,看网上面的资料好乱啊,有什么资料推荐吗

uf4te 站长
Windows 11 · Chrome128.0
发布于 2024-09-13 · 湖北

@某不知名网友: 谢谢支持,一起加油 weibo_blush

某不知名网友
Windows 11 · Chrome128.0
发布于 2024-09-13 · 福建

写的真好!!!!很少见到这么详细的分析帖了!!!!!!

某不知名网友
Windows 11 · Chrome127.0
发布于 2024-08-28 · 卡尔加里

好厉害,不知道博主学了几年了,二进制也太难了呜呜

Windows 10 · Chrome127.0
发布于 2024-08-19 · 未知

碎片整理花费时间可能比较长,因为是机械硬盘,固态很快,效果很好。

uf4te 站长
Windows 11 · Chrome127.0
发布于 2024-08-14 · 湖北

今天是本站第一次收到赞助哈哈哈,特别感谢 @q1uTruth 对本站的支持,点击查看详情

很开心我的文章可以得到大家的认可,也很开心可以帮助到大家,我也会继续努力,共勉weibo_laughweibo_laugh

uf4te 站长
Windows 11 · Chrome127.0
发布于 2024-07-31 · 湖北
某不知名网友
Windows 11 · Edge126.0
发布于 2024-07-31 · 辽宁

讲的很全面,牛逼

uf4te 站长
Windows 11 · Chrome126.0
发布于 2024-07-19 · 湖北

@Qin: 仿佛已经到下半年开学了,没办法,感觉时间真的过的好快啊啊啊啊 weibo_sobweibo_sob

Qin
Windows 11 · Edge126.0
发布于 2024-07-18 · 江苏

2000年研三?weibo_suprisedweibo_longingweibo_longing

uf4te 站长
Windows 11 · Chrome125.0
发布于 2024-07-08 · 湖北

@某不知名网友: 谢谢哈哈哈哈weibo_blush

某不知名网友
Windows 11 · Edge126.0
发布于 2024-07-07 · 湖南

看着真舒服weibo_love

uf4te 站长
Windows 11 · Chrome124.0
发布于 2024-05-11 · 湖北

@illustager: 谢谢支持~weibo_doge

illustager
Windows 11 · Chrome124.0
发布于 2024-05-11 · 未知

好棒的博客

某不知名网友
Windows 11 · Edge124.0
发布于 2024-05-10 · 未知

@uf4te: 感谢作者大大

uf4te 站长
Windows 11 · Chrome124.0
发布于 2024-05-09 · 湖北

@某不知名网友: 是的,因为后端的资源可能涉及一些个人信息,而且 Hexo 只是一个将后端的资源整合成 Html 的框架,目前仅开源了这些 Html 文件,如果你对博客 UI 比较感兴趣的话,可以参考我在友情链接中列举的博主,他们有很多专门优化 UI 的文章可以借鉴weibo_dog_think

某不知名网友
Windows 11 · Edge124.0
发布于 2024-05-09 · 未知

作者大大仅仅开源了前端的代码吗

某不知名网友
Windows 11 · Chrome122.0
发布于 2024-03-15 · 未知

@uf4te: 我悟了,之前是没想清楚,谢谢哥

uf4te 站长
Windows 11 · Chrome122.0
发布于 2024-03-15 · 湖北

@某不知名网友: 步骤①右边后半部分不取余数是因为分了两种情况,因为Str1本身是可见字符构成的字符串,取值在[32,127]。那么如果Str1[(i * i + 123) % 21]小于96的话取余就是它本身,如果Str1[(i * i + 123) % 21]大于96的话取余结果就是它本身-96

步骤②那个是根据①里面的式子移项来的,并不是对①式的左边取了余数,相当于②中的式子里右边的Str是加密后的密文、左边的Str就是flag的明文

可能没有写的比较清楚weibo_dog_think

某不知名网友
Windows 11 · Chrome122.0
发布于 2024-03-15 · 湖南

哥,最后那个算法是怎么变过来的?本身整体取余96为什么变化后只有前半部分取余后半部分就可以不取了,而是去-96

uf4te 站长
Windows 11 · Chrome120.0
发布于 2024-01-06 · 湖北

@某不知名网友: 哈哈哈,我当时配 Ubuntu 16.04 的环境一整套下来也弄了挺久,主要是时代在变化,很多东西已经与当年不一样了,谁也不会知道按照以前的教程会出现什么离奇的 bug,网上的教程也急需更新了,所以我也出了一个亲身实践版,很高兴能帮到你weibo_doge

某不知名网友
Windows 11 · Chrome120.0
发布于 2024-01-06 · 东京都

大佬太感谢了,我用16.04配置pwndbg配了两天,真的想死

uf4te 站长
Mac OS 10.13.5 · Chrome120
发布于 2024-01-03 · 湖北

@某不知名网友: 其他字节有没有影响这个我倒没有自己亲自编译尝试过,前四字节主要是 Python 版本,5 - 8 字节应该没啥影响,后 8 字节可能会有影响吧,具体的可能自己编译一个文件试试会比较好

某不知名网友
Windows 11 · Edge120.0
发布于 2024-01-03 · 湖北

pyc文件的前16个字节时只有前四个字节对编译有影响码

momo
Mac OS 10.15.6 · Safari15.6
发布于 2023-12-01 · 湖北

@uf4te: 哈哈 weibo_husky

uf4te 站长
Windows 11 · Edge119.0
发布于 2023-11-28 · 湖北
uf4te 站长
Windows 11 · Chrome119.0
发布于 2023-11-28 · 湖北

@Capricious: 收到! weibo_dog_annoyed

momo
HarmonyOS 12 · Baidu13.45
发布于 2023-11-28 · 湖北
Capricious
Windows 10 · Firefox120.0
发布于 2023-11-28 · 湖北

测试一下 weibo_grin

uf4te 站长
Windows 11 · Chrome119.0
发布于 2023-11-28 · 湖北

一楼用来占位 ~~ weibo_blush

欢迎来到我的小站
我是一个喜欢学习 PWN 和逆向的二进制 CTFer,加油,互勉!
计时小助手
最新公告
可以在《互动 -> 我的说说》下查看本站的更新及动态:我的说说
访客信息
网站线路
--- 主线路 ---
www.uf4te.cn | uf4te.cn
--- 备用线路 ---
blog.uf4te.cn
cloudflare.uf4te.cn
uf4te.github.io
--- 本站APP下载 ---
Android | Windows
Mac | Linux
文件 MD5 校验
知乎热榜
诗文欣赏
文章归档文章标签文章分类随便逛逛
直达评论复制本文地址
昼夜切换本站协议赞助本站关于本站