这个雪来的一点都不好。。。。。。。。。。。
根据提示,应该添加个请求头referer:https://www.google.com 可以用burp抓包,也可以用modify headers 添加请求头
这里要注意,,referer:www.google.com 出不来,必须要加上https://
还有就是 不知道为啥referer信息 夹在中间 它才出来 其他地方不出来
刚好之前学到过这个,MD5进行判断时若果两串字符加密后是0e 会以为是科学计数法就会判为相等 QNKCDZO MD5加密后开头是0e 所以再找一串字符加密后是0e就可以绕过
0e开头的md5和原值:
QNKCDZO
0e830400451993494058024219903391
240610708
0e462097431906509019562988736854
s878926199a
0e545993274517709034328855841020
s155964671a
0e342768416822451524974117254469
s214587387a
0e848240448830537924465865611904
s214587387a
0e848240448830537924465865611904
s878926199a
0e545993274517709034328855841020
s1091221200a
0e940624217856561557816327384675
s1885207154a
0e509367213418206700842008763514
s1502113478a
0e861580163291561247404381396064
s1885207154a
0e509367213418206700842008763514
s1836677006a
0e481036490867661113260034900752
s155964671a
0e342768416822451524974117254469
s1184209335a
0e072485820392773389523109082030
s1665632922a
0e731198061491163073197128363787
s1502113478a
0e861580163291561247404381396064
s1836677006a
0e481036490867661113260034900752
s1091221200a
0e940624217856561557816327384675
s155964671a
0e342768416822451524974117254469
s1502113478a
0e861580163291561247404381396064
s155964671a
0e342768416822451524974117254469
s1665632922a
0e731198061491163073197128363787
s155964671a
0e342768416822451524974117254469
s1091221200a
0e940624217856561557816327384675
s1836677006a
0e481036490867661113260034900752
s1885207154a
0e509367213418206700842008763514
这里就使用 a=240610708进行绕过
根据提示,从本地访问,使用firefox浏览器插件设置IP为127.0.0.1
得到源代码
使用get方式传id的值 id的url编码和id的值一样
用get方式传uname post方式传passwd 并且 uname和passwd的值不相同 但是sha1相同 ,,sha1可以通过数组来绕过,sha1不能处理数组,会返回flase ,,
所以 构造 uname[]=2 passwd[]=1 id='margin' //margin的url编码还是margin
用Firefox的插件Hackerbar用post方式传passwd的值 得到flag
得到源码
百度了各个函数的功能
extract()
empty()函数是用来测试变量是否已经配置。若变量已存在、非空字符串或者非零,则返回 false 值;反之返回 true值。所以,当字符串的值为0时,也返回true。
trim()函数刚写过 是去除字符串两边的固定字符空格之类的
file_get_contents()是读取文件将文件中的文本作为返回值
题目给的提示是有一个txt文本,,,,不断测试发现有一个flag.txt 里边的字符串是flags
代码中输出flag的条件是ac不为空并且 f==ac 虽有构造payload
http://123.206.87.240:8002/web8/?ac=flags&fn=flag.txt
打开后是这个页面,还以为是bugku又出问题了,经过几次尝试在 robots.txt里边发现了一个网页
访问这个网页
显示尝试改了几次本地ip 不行,,然后注意到下边的php代码 有一个get方式的传值
尝试着将x=admin传进去 结果出来了flag
打开网页是一个上传图片的功能 创建一个php小马上传,抓包,更改请求头进行绕过
依次尝试php4,phtml,phtm,phps,php5(包括一些字母改变大小写)
最终发现,php5可以绕过
请求头Content-Type字段,大小写绕过: mULtipart/form-data;
得到flag
sql注入的题目
参考https://www.cnblogs.com/nienie/p/8524519.html
能力有限 后边就看不太懂了
查看源码发现有upload.php 访问 是一个上传文件的网页
这里是使用了 xss
创建一个文本文档 将<script language=php>system("ls")</script>写入保存 更改后缀为jpg 意思是 显示出所有文件
上传 然后访问上传的图片位置
访问http://123.206.31.85:49166/index.php?file=upload/202001160721001670.jpg
发现可以文本 直接访问文本得出flag