问题标签 [ctf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - Unix管道导致程序提前终止
所以我最近尝试了一个 CTF,我需要在标准输入中输入一些非打印字符以覆盖堆栈变量。我决定将printf
命令的输出通过管道传输到程序中,这可以覆盖变量,但是当程序遇到阻塞调用并且输入不足时,会产生意外的副作用,即终止程序。
我可以编写的最短的 C 程序来演示这个问题是
运行它通常会产生预期的结果
但是如果我在这个程序上使用管道,我会得到
看到不同?如果我使用管道,system("/bin/sh")
则在输入用完后返回,程序通常会阻塞/等待输入。也许管道正在发送导致system()
返回的 EOF?如何通过改变我使用 bash 的方式使它不这样做(就像我正常输入一样)?(我无法更改 CTF 中的程序)。有没有更好的方法来输入非打印字符?
linux - 无法将简单外壳升级到完全交互式会话
我正在学习 CTF 并且在升级 shell 时遇到问题。
方法 1 没有帮助 - Ctrl+C 停止 netcat。
方法 2 不起作用 - 设置监听器后,终端停止响应任何键。
方法 3 几乎可以工作 - 但按 Enter 后,我在终端上得到 ^M 并且命令不运行。
我做错了什么?如何升级外壳?
computer-forensics - 我使用 binwalk 提取了一个文件。我发现它有一个 TROC 文件,如何读取或提取 TROC 文件的内容?
十进制 | 十六进制 | 描述 |
---|---|---|
33211 | 0x81BB | TROC 文件系统,1263425345 个文件条目 |
948694 | 0xE79D6 | StuffIt Deluxe Segment(数据):f:IK |
python - p==q 时的 RSA 加密
两天前我参加了 DawgCTF。我正要解决 RSA 问题,但我无法解决。
DawgCTF 的 RSA 问题给出了 n、e、c。
所以,我使用 factordb 对 n 进行因式分解,n 的结果是只有一个素数的平方。(即 n=p^2)
我从未见过 p 和 q 在 RSA Crypto 中相同的情况。无论如何,我让 phi 为 (p-1)(q-1) 并编写如下代码。(phi 表示欧拉的 phi)
但是,没有用!!!
在 CTF 之后,我找了一篇文章,其中他没有将 phi 设置为 (p-1)^2,而是 p*(p-1)。但是,我不知道为什么......为什么当 p==q 时 phi 应该是 p*(p-1)?
如果您能解释一下,我将不胜感激。
cryptography - 如何解决指数为 65537 的 rsa 相关消息攻击?
c1 = ([message] + b'good')^e mod N
c2 = ([message] + b'hello')^e mod N
我们得到了 c1,c2 和 e, N.如何让消息恢复
例如:
security - 自动创建 CTF 问题
我在网上搜索过,但我找不到任何相关的文章。我正在研究自动化创建 CTF 问题的过程。这是为了帮助减少每次创建 CTF 所需的小时数。想知道是否有人有任何想法?
c - 如何手动确定哪个链接器与给定的 libc 文件和给定的二进制文件一起使用?
背景是我正在查看来自 pico-CTF 的旧 CTF 挑战。您确实有 Makefile、二进制文件本身和对应的 libc 文件可用。但是,二进制文件不会在我的机器上运行,而是会因分段错误而中止。根据我提供的一篇文章,这是由于本地机器上的链接器(ld-linux-xxxxx.x.so)不匹配造成的。然后在写作中,他使用了不同的 ld 文件,一切都很好。所以我想知道你怎么知道你需要使用哪个ld文件。我知道您可以使用带有 --set-interpreter 选项的 patchelf 来正常运行该二进制文件,但是如何知道要使用哪个链接器让我大吃一惊。如果有人可以让我对此有所了解,或者至少将我指向一些我可以阅读的链接,那就太好了。到目前为止,我还没有发现任何有用的东西。
提前致谢。
docker - 如何使用 Docker 通过 TCP 将二进制文件作为服务托管?
我已经学会了如何使用 Docker 容器,并且我想设置一个包含二进制文件的容器,以便:
- 如果我 ssh 到 Docker 容器,系统会提示我好像刚刚在本地执行了二进制文件
- 如果我遇到导致二进制文件退出的条件,它将重新启动并再次从头开始提示我
我了解了如何在我的容器中公开端口,并且了解了 Docker 网络的要点,但是我没有了解如何如上所述通过 TCP 代理我的二进制文件,就像我经常看到 CTF 挑战设置的方式一样。任何细节都非常感谢。
编辑:我还要补充一点,我知道如何在创建映像期间将二进制文件复制到容器中。我只是想弄清楚服务部分。
rest - 为 CTFd 框架添加多个用户
有谁知道如何通过 CTFD 框架的脚本添加多个用户?
c - “if .. else”语句不适用于捕获标志挑战
我正在尝试设置 ac 捕获标志挑战,但我无法让 if 语句正常工作。
我有一个文本文件,其中包含以下行:
这会检查我的字符短语,它是相同的,所以应该打印出答案,如果没有打印出错误。
我已经尝试了多种方法,但看不出哪里出错了。和只是确认两者是相同的printf(flagText)
。printf(phrase)