问题标签 [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.
javascript - 在学习道德网络黑客时,我应该学习 javascript、html 还是两者都学习
我正在学习道德黑客,主要是通过网站。我知道网络的基础知识,但是在网站黑客方面我应该首先学习什么编码语言。我希望它不仅对 ctf 有帮助,而且在实际情况下也能帮助我。
谢谢
php - php for ctf 中代码行的解释
伙计们,我正在学习解决 ctf 并在 php 中看到了这一行
${"result$i"} = $db->query("SELECT * FROM {$tables[$i]} " . ($order != '' ? "ORDER BY ".$db->escape_string($order)." " : ""));
这是在以 $i 作为增量器的 for 循环中,所以不明白发生的事情如下
- 这是什么意思:
${"result$i"}
- 放入
$tables[$i]
{ } - 有人可以解释一下吗:
($order != '' ? "ORDER BY ".$db->escape_string($order)." " : "")
ubuntu - 在 64 位机器 (Ubuntu 20.04) 上执行二进制文件时使用不同的 libc (32)
我正在尝试执行 32 位二进制文件并使用自定义 libc。所以,我使用LD_PRELOAD
环境变量来设置路径。
在此之后,一个简单的ls
显示此错误 -
我目前正在 Ubuntu 20.04 64 位机器上尝试此操作,但收到此错误。这种技术曾经在 Ubuntu 18.04 的同一台机器上运行良好。为什么会发生这种情况,是否有解决方法?
上下文:我正在尝试 CTF 挑战,LD_PRELOAD
当挑战还提供自定义libc
. 我尝试运行使用这种方法的脚本,并且过去在 Ubuntu 18.04 上运行良好,但它们抛出了同样的错误。
编辑:
该ls
命令工作正常,但也会打印错误消息。执行的任何命令都将正常工作并显示此错误。主要问题是为什么这不能在 Ubuntu 20.04 上运行,而它在 18 上运行良好。
c - fread get 存储在堆栈中的什么位置?
我有一个小小的疑问,我正在做一个只为我提供 ELF 文件的 ctf。我已经能够使用 Ghidra 对其进行反编译,但问题是:在某个时候我读到:(
fread(flag,0x400,1,__stream);
之前有:__stream = fopen("./flag","rb");
1)我认为 fread 中的“标志”是 fread 存储从 flag.txt 读取的“__stream”的位置,但它之前从未声明过(我指的是 fread 中的“标志”),是吗实际上是我期望的缓冲区?如果是,则读取的值存储在内存中的哪里(那么这个缓冲区存储在哪里?在堆栈中?)
2) fread 具有 0x400 维度值和 1 作为要读取的元素数是否正常?
提前感谢大家!
sql - MariaDB 给我一个错误,在 ctf 中显示 'WHERE '1'='1''
我正在浏览初学者hackerone ctfs,并试图破解Micro-CMS v2。有一个容易受到 SQL 注入攻击的登录页面。查询是这样的:
在我输入的用户名字段中,' UNION SELECT '123' AS password WHERE '1'='1
但随后返回此错误
我尝试用 --' 或使用 gWHERE 1=1'
来评论它,但没有任何东西可以工作
python - Python:为什么我的 Popen 返回的进程有一个“无”标准输入?
我正在尝试在 python 中创建一个程序来强制执行一个 ctf C 程序,在该程序中你必须找到一个水果沙拉食谱才能获得标志。
我想要做什么:我希望能够在 python 中的 C 程序的标准输入上编写。
问题:Popen 返回的进程的标准输入没有值,而标准输出和标准错误是正确的。
我的程序的输出:
代码 :
如您所见,我正在使用 print 然后在循环之前退出来调试进程 std,我不明白为什么None
在打印时会得到print(process.stdin)
感谢您 !
assembly - 为什么buf的地址是0x12而不是10?
我的代码如下:
我编译代码并使用ida pro打开二进制文件(gcc版本为5.4.0,操作系统为ubuntu 16.04,编译命令为“gcc -m32 -no-pie -fno-stack-protector stack_overflow.c - o stack_overflow "),我发现反汇编代码显示缓冲区s的地址是ebp - 12h,我只是想知道为什么不是ebp - 10?
myread()的反汇编代码如下:
myread()的栈如下,好像和栈保护机制无关
verilog - bluespec编译的文件头
我有一个扩展名为 .bo 的文件。经过一些研究,它似乎是用与 risc-V 架构一起使用的 bluespec 构建的。我的目标是反转这个文件。
当我做:
所以,我不知道这是否是文件的好“格式”。或者 .bo 文件上的 file 命令必须返回什么?verilog 文件的基本头文件是什么?
谢谢你的帮助。
php - CTF 类型杂耍与成熟 md160 哈希
我正在尝试解决应该使用杂耍类型的 CTF。代码是:
我在python中制作了一个脚本,它检查ripemd160中以“0e”开头并仅以数字结尾的随机哈希。代码是:
关于如何解决它的任何建议?谢谢!
base64 - 如何检查 base64 字符串是否为文件(什么类型?)?
我在https://2020.ractf.co.uk/上接受了 Spenttalkux 挑战。这是我第一次进行 CTF 挑战,所以我通过https://github.com/W3rni0/RACTF_2020/blob/master/readme.md#spentalkux上的解决方案
当我收到这个 base64 字符串时:
我不知道如何检查它是否是一个文件,但是求解器说它是一个gz压缩数据文件。
你能帮我吗? 详细在这里
文件链接:https ://github.com/W3rni0/RACTF_2020/blob/master/assets/files/Spentalkux.gz