[RoarCTF 2019]Online Proxy
知识点:xff 二次注入
poc
0' or 1 or '0 |
https://www.jianshu.com/p/08aabdbc8a7b
# coding:utf-8 |
[SCTF2019]Flag Shop
知识点:ruby ssti
后端ruby写的 |
1 -e
2 在命令行输入irb
3 文件
代码看的还可以!发现可以直接传参控制输出!ssti!
这里需要用到Ruby
语言的一个特性。我们可以利用$'
来返回正则匹配结果的右边。举个例子:
"There were once ten tin robots standing in a row." =~ /robot/ |
题目里当参数SECRET值不存在时!ENV["SECRET"]就正则匹配!相当于它自己了!
payload:
/work?SECRET=&name=<%=$'%>&do=<%=$'%> is working |
{ |
PWN
string
知识点 :格式化字符串
其实不太懂为什么掉到这里就可以直接有shell了!
((void (__fastcall *)(_QWORD, void *))v1)(0LL, v1);
先去理解过程!
首先v4就是V3 V3的地址一开始也给了!
secret[0] is 19da260
secret[1] is 19da264
发现有这3个函数!
sub_400BB9
里有格式化字符串漏洞!
就就通过漏洞重写V3[0]
!
让V3[0] = V3[1]
输入 AAAA,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x
或者 AAAA-%p-%p-%p-%p-%p-%p-%p-%p-%p-%p-%p-%p-%p
poc
upload |
发现偏移量是8!
其实这个题我想的是 偏移8位!直接给format 付上v3地址
然后偏移8个覆盖自己!但是最后不行!
只能给format 前一个v2地址赋值!然后偏移7个!我人有点晕 不知道为什么自己的思路不行!
它的思路也很明确! 就是覆盖V2! v2就在format 前面!所以偏移7位就行了!🙄🙄🙄
完了!不知道自己思路那错了!太菜了!哭哭哭!
exp
#!/usr/bin/env python |
[MRCTF2020]Ezaudit
知识点:mt_rand伪随机数!
username=crispr&password=1'/**/||/**/1/**/||/**/'&Private_key=XuNhoueCDCGc&login=%E7%99%BB%E5%BD%95 |
爆破seed
#!/usr/bin/env python |
然后用工具跑出种子!
poc
php 5 的环境 |