问题标签 [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.

0 投票
0 回答
44 浏览

c - Unix管道导致程序提前终止

所以我最近尝试了一个 CTF,我需要在标准输入中输入一些非打印字符以覆盖堆栈变量。我决定将printf命令的输出通过管道传输到程序中,这可以覆盖变量,但是当程序遇到阻塞调用并且输入不足时,会产生意外的副作用,即终止程序。

我可以编写的最短的 C 程序来演示这个问题是

运行它通常会产生预期的结果

但是如果我在这个程序上使用管道,我会得到

看到不同?如果我使用管道,system("/bin/sh")则在输入用完后返回,程序通常会阻塞/等待输入。也许管道正在发送导致system()返回的 EOF?如何通过改变我使用 bash 的方式使它不这样做(就像我正常输入一样)?(我无法更改 CTF 中的程序)。有没有更好的方法来输入非打印字符?

0 投票
0 回答
74 浏览

linux - 无法将简单外壳升级到完全交互式会话

我正在学习 CTF 并且在升级 shell 时遇到问题。

这是我使用的指令 - https://blog.ropnop.com/upgrading-simple-shells-to-fully-interactive-ttys/#method-3-upgrading-from-netcat-with-magic

方法 1 没有帮助 - Ctrl+C 停止 netcat。

方法 2 不起作用 - 设置监听器后,终端停止响应任何键。

方法 3 几乎可以工作 - 但按 Enter 后,我在终端上得到 ^M 并且命令不运行。

我做错了什么?如何升级外壳?

0 投票
1 回答
758 浏览

computer-forensics - 我使用 binwalk 提取了一个文件。我发现它有一个 TROC 文件,如何读取或提取 TROC 文件的内容?

十进制 十六进制 描述
33211 0x81BB TROC 文件系统,1263425345 个文件条目
948694 0xE79D6 StuffIt Deluxe Segment(数据):f:IK
0 投票
1 回答
247 浏览

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)?

如果您能解释一下,我将不胜感激。

0 投票
0 回答
164 浏览

cryptography - 如何解决指数为 65537 的 rsa 相关消息攻击?

c1 = ([message] + b'good')^e mod N
c2 = ([message] + b'hello')^e mod N

我们得到了 c1,c2 和 e, N.如何让消息恢复

例如:

0 投票
0 回答
53 浏览

security - 自动创建 CTF 问题

我在网上搜索过,但我找不到任何相关的文章。我正在研究自动化创建 CTF 问题的过程。这是为了帮助减少每次创建 CTF 所需的小时数。想知道是否有人有任何想法?

0 投票
1 回答
45 浏览

c - 如何手动确定哪个链接器与给定的 libc 文件和给定的二进制文件一起使用?

背景是我正在查看来自 pico-CTF 的旧 CTF 挑战。您确实有 Makefile、二进制文件本身和对应的 libc 文件可用。但是,二进制文件不会在我的机器上运行,而是会因分段错误而中止。根据我提供的一篇文章,这是由于本地机器上的链接器(ld-linux-xxxxx.x.so)不匹配造成的。然后在写作中,他使用了不同的 ld 文件,一切都很好。所以我想知道你怎么知道你需要使用哪个ld文件。我知道您可以使用带有 --set-interpreter 选项的 patchelf 来正常运行该二进制文件,但是如何知道要使用哪个链接器让我大吃一惊。如果有人可以让我对此有所了解,或者至少将我指向一些我可以阅读的链接,那就太好了。到目前为止,我还没有发现任何有用的东西。

提前致谢。

0 投票
1 回答
53 浏览

docker - 如何使用 Docker 通过 TCP 将二进制文件作为服务托管?

我已经学会了如何使用 Docker 容器,并且我想设置一个包含二进制文件的容器,以便:

  • 如果我 ssh 到 Docker 容器,系统会提示我好像刚刚在本地执行了二进制文件
  • 如果我遇到导致二进制文件退出的条件,它将重新启动并再次从头开始提示我

我了解了如何在我的容器中公开端口,并且了解了 Docker 网络的要点,但是我没有了解如何如上所述通过 TCP 代理我的二进制文件,就像我经常看到 CTF 挑战设置的方式一样。任何细节都非常感谢。

编辑:我还要补充一点,我知道如何在创建映像期间将二进制文件复制到容器中。我只是想弄清楚服务部分。

0 投票
0 回答
42 浏览

rest - 为 CTFd 框架添加多个用户

有谁知道如何通过 CTFD 框架的脚本添加多个用户?

0 投票
0 回答
30 浏览

c - “if .. else”语句不适用于捕获标志挑战

我正在尝试设置 ac 捕获标志挑战,但我无法让 if 语句正常工作。

我有一个文本文件,其中包含以下行:

这会检查我的字符短语,它是相同的,所以应该打印出答案,如果没有打印出错误。

我已经尝试了多种方法,但看不出哪里出错了。和只是确认两者是相同的printf(flagText)printf(phrase)