根据提示,查看网页源代码
发生了什么,鼠标右键无论用了,F12看到了什么!哈哈哈哈哈
php
也太简单了吧哈哈哈
前端
打开御剑扫描后台
python
没什么发现,抓包看看
看看cookie.php
看http响应头,哈哈哈so easy
linux
稍微了解过前端知识的都知道,删除代码:disabled="“或者将disabled=”"改成disabled=“false”,而后点击网页上的flag图标就能够获得flag了,F12修改网页代码获得flag
git
先随便输入一个帐号密码admin,password
显示密码错误,而后换了一个帐号密码,提示要以admin身份登陆,说明帐户就是admin
开始爆破,一开始用的是burp自带的一个password字典
没爆出结果,看来字典不太好用
既然是weak,那就应该是弱密码,什么是弱密码呢,参考一篇博客:github
弱密码是易于猜想的密码,主要有如下几种:web
特别感谢博主提供的github上的字典让我成功找到密码(没想到密码这么简单)
windows
<?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,固然有不少种构造方法
知识点:服务器
一、php弱类型比较
== 在进行比较的时候,会先将字符串类型转化成相同,再比较
=== 在进行比较的时候,会先判断两种字符串的类型是否相等,再比较cookie
<?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 ?>
二、is_numeric函数
is_numeric() 函数用于检测变量是否为数字或数字字符串。
三、%00截断
%00是空格的意思具备截断做用
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也可直接修改
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 …/ 知识点: 一、掌握有关命令执行的知识 windows或linux下: command1 && command2 先执行command1,若是为真,再执行command2 command1 | command2 只执行command2 command1 & command2 先执行command2后执行command1 command1 || command2 先执行command1,若是为假,再执行command2 命令执行漏洞(| || & && 称为管道符) 二、利用cat命令打开flag文件