目录
view_source
右键无法查看页面源代码
方法一: ctrl+U
方法二:view_source+url
robots
robots协议也叫robots.txt,是存放在网站根目录下ASCII编码的文本文件,通常告诉网络搜索引擎漫游器,此网站哪些内容不应该被搜索引擎的漫游器获取,哪些可以被获取。一些系统URL大小写敏感,所以robots.txt文件名统一小写。它是搜索引擎中访问网站的时候要查看的第一个文件。
将网站视为酒店房间,robots.txt就是主人在房间门口悬挂的“请勿打扰”或“欢迎打扫”的提示牌。这个文件告诉来访的搜索引擎哪些房间可以进入和参观,哪些房间因为存放贵重物品,或可能涉及住户及访客的隐私而不对搜索引擎开放。但robots.txt不是命令,也不是防火墙,如同守门人无法阻止窃贼等恶意闯入者。
方法:直接访问url/robots.txt
backup
题目提示备份文件
方法一:
常见网站备份文件后缀.git .svn .swp .~ .bak .bash_history
尝试访问:url+index.php+文件后缀
最后发现是 url+index.php.bak
方法二:
用dirsearch扫站点目录
dirsearch.py -u http://111.200.241.244:60770 -e php
cookie
burp suite抓包
访问 url/cookie.php
提示看返回包。
disabled_button
disabled属性导致按钮不能按。
删掉disabled该属性,按下按钮得到flag。
weak_auth
先随意账号密码
提示账号为admin
账号为admin,密码用burpsuite爆破。
得到密码为123456 登入拿到flag。
simple_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;
}
?>
$a==0为弱比较类型。==只比较值,不比较类型。===除了比较值,也比较类型。
当a=false时a==0
方法一:
?a=flase&b=7777r
方法二:
?a=p&b=7777r
get_post
根据题目提示用get方式提交a=1
xff_referer
X-Forwarded-For简称XFF。是一个HTTP扩展头部,用来表示HTTP请求端真实IP。
X-Forwarded-For请求头格式:X-Forwarded-For: client, proxy1, proxy2
brup抓包,在http头加一条X-Forwarded-For: 123.123.123.123
再增加一条Referer: https://www.google.com
referer就是告诉服务器当前访问者是从哪个url地址跳转到自己的,跟xff一样,referer也可直接修改
webshell
方法一:
蚁剑连接,找到flag.txt文件
方法二:
command_execution
该题考察命令执行
find / -name flag.txt 在根目录下查找flag.txt文件。
或者
1|find / -name *.txt
1|tac /home/flag.txt
simple_js
尝试禁用js
1、在地址栏输入 about:config ,提示三思后行,点击接受风险并继续。
2、搜索地址栏中输入javascript.enabled
3、把true改成false就行。(做完题不要忘记改回来)
发现与此无关
查看页面源代码,看js部分
<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>
代码审计,js基础不牢,没太看懂。看了一下师傅们的博客。意思好像输出和我们输入没关系。
有一串16进制的字符\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,就是flag内容。
转码一下。
得到55,56,54,79,115,69,114,116,107,49,50
对照ASCII码表再转换为字符。
或者用python