查看网页源代码
根据提示,查看网页源代码
发生了什么,鼠标右键不管用了,F12看到了什么!哈哈哈哈哈
robots协议
也太简单了吧哈哈哈
备份文件
打开御剑扫描后台
cookie
没什么发现,抓包看看
看看cookie.php
看http响应头,哈哈哈so easy
disabled_button
稍微了解过前端知识的都知道,删除代码:disabled="“或者将disabled=”"改为disabled=“false”,然后点击网页上的flag图标就可以得到flag了,F12修改网页代码得到flag
weak auth
先随便输入一个账号密码admin,password
显示密码错误,然后换了一个账号密码,提示要以admin身份登录,说明账户就是admin
开始爆破,一开始用的是burp自带的一个password字典
没爆出结果,看来字典不太好用
既然是weak,那就应该是弱密码,什么是弱密码呢,参考一篇博客:
弱密码是易于猜测的密码,主要有以下几种:
- 顺序或重复的字相邻字母: “111111” 、“abcdefg”、 “asdf”、“qwer”键盘上的
- 使用数字或符号的仅外观类似替换,例如使用数字“1”、“0”替换英文字母“i”、“O”,字符“@”替换字母“a”等;
- 登录名的一部分:密码为登录名的一部分或完全和登录名相同;
- 常用的单词:如自己和熟人的名字及其缩写,常用的单词及其缩写,宠物的名字等;
- 常用数字:比如自己或熟人的生日、证件编号等,以及这些数字与名字、称号等字母的简单组合。
特别感谢博主提供的github上的字典让我成功找到密码(没想到密码这么简单)
simple_php
<?php
show_source(__FILE__);
include("config.php");
$a=@$_GET['a'];
$b=@$_GET['b'];
if($a==0 and $a){//如果a弱等于0
echo $flag1;
}
if(is_numeric($b)){
exit();
}
if($b>1234){//b不能为数字且b>1234
echo $flag2;
}
?>
构造payload:
http://111.198.29.45:37627/?a=0abc&b=12345%00,当然有很多种构造方法
知识点:
1、php弱类型比较
== 在进行比较的时候,会先将字符串类型转化成相同,再比较
=== 在进行比较的时候,会先判断两种字符串的类型是否相等,再比较
<?php
2 var_dump("admin"==0); //true
3 var_dump("1admin"==1); //true
4 var_dump("admin1"==1) //false
5 var_dump("admin1"==0) //true
6 var_dump("0e123456"=="0e4456789"); //true,会将0e这类字符串识别为科学技术法的数字,0的无论多少次方都是零,所以相等
7 ?>
2、is_numeric函数
is_numeric() 函数用于检测变量是否为数字或数字字符串。
3、%00截断
%00是空格的意思具有截断作用
get_post
Xff-referer
xff
维基百科:
X-Forwarded-For(XFF)是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。
简单地说,xff是告诉服务器当前请求者的最终ip的http请求头字段
通常可以直接通过修改http头中的X-Forwarded-For字段来仿造请求的最终ip
Referer
维基百科:
HTTP来源地址(referer,或HTTPreferer)
是HTTP表头的一个字段,用来表示从哪儿链接到当前的网页,采用的格式是URL。换句话说,借着HTTP来源地址,当前的网页可以检查访客从哪里而来,这也常被用来对付伪造的跨网站请求。
简单的讲,referer就是告诉服务器当前访问者是从哪个url地址跳转到自己的,跟xff一样,referer也可直接修改
command_execution
127.0.0.1 | ls /
127.0.0.1 | ls /home
127.0.0.1 | cat /home/flag.txt
附上一篇思路很清晰的博客:
https://adworld.xctf.org.cn/task/writeup?type=web&id=5071&number=3&grade=0&page=1
127.0.0.1 && ls …/
知识点:
1、掌握有关命令执行的知识
windows或linux下:
command1 && command2 先执行command1,如果为真,再执行command2
command1 | command2 只执行command2
command1 & command2 先执行command2后执行command1
command1 || command2 先执行command1,如果为假,再执行command2
命令执行漏洞(| || & && 称为管道符)
2、利用cat命令打开flag文件