ctrl+shift+i
ctrl+u
Robots协议,学名叫:The Robots Exclusion Protocol,就搜索引擎抓取网站内容的范围作了约定,包括网站是否希望被搜索引擎抓取,哪些内容不允许被抓取,把这些内容放到一个纯文本文件robots.txt里,然后放到站点的根目录下。爬虫抓取网站内容前会先抓取robots.txt,据此“自觉地”抓取或者不抓取该网页内容,其目的是保护网站数据和敏感信息、确保用户个人信息和隐私不被侵犯。
robots.txt文本文件必须存放在站点的根目录
猜想,flag应该在robots.txt中,对robots.txt进行访问,在网址后面加上/robots.txt
再对flag…进行访问
User-agent: 表示允许所有搜索引擎蜘蛛来爬行抓取,也可以把去掉,改为特定某专一个或者某些搜索引擎蜘蛛来爬行抓取,如百度是Baiduspider,谷歌是Googlebot。
php的备份有两种:.php~和.php.bak
如果网站存在备份文件,在地址栏最末加上/index.php~或/index.php.bak,即可得到备份文件
添加了.php.bak.后自动下载了个文件,用记事本打开发现flag
为什么会有cookie
Web应用程序是使用HTTP协议传输数据的。HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。你可能会有这样的经历,登陆一个网站的时候会提醒你要不要记住账户和密码,这样下次来你就不用再次输入账号密码了。这就是cookie的作用,当我们再次访问的时候,方便服务器直接根据我们的cookie来直接取上一次取过的东西(对于每一个cookie服务器会对这个cookie存储上一次我们拿过的数据,下一次对于同一个cookie的时候,就直接在这里取)
什么是Cookie
Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),(服务器告诉浏览器设置一下cookie),浏览器自动会将Cookie以key/value保存到某个目录下的文本文件内,下次请求同一网站时也会自动发送该Cookie给服务器,即添加在请求头部(前提是浏览器设置为启用cookie)。
Cookie就是一个小型文件(浏览器对cookie的内存大小是有限制的-------用来记录一些信息)
cookie的一些基本信息可以查看这篇博客(https://segmentfault.com/a/1190000016248401)
根据博客看,我利用浏览器对他进行了查看
发现一个cookie.php的文件,对它进行访问
做到cookie的题目,再加上看到responce就能联想到抓包
成功得到flag
其实刚开始用bp对网页进行抓包的时候就能看到里面有cookie.php
打开开发者工具,进入查看器
方法一:将disable删除
方法二:将disable改成“disable=false”
更改后flag就可以单击了
js中设置按钮可点击与不可点击,默认是可点击的
(1)设置按钮内不可点击
document.getElementById(“bt1”).disabled=ture;
(2)设置按钮可点击
document.getElementById(“bt1”).disabled=false;
不知道为什么,当我改成disable=false后flag是无法点击的
看到这个页面我先拿万能密码试了一下(admin /’ or ‘1’='1)
不成功
查看源码,弱口令进行爆破
弱口令字典
https://github.com/rootphantomer/Blasting_dictionary
如果用其他用户名登录的话,会显示以下弹窗,则推断用户名是admin
bp抓包——action——send to intruder——position(在password上加上符号§,则过会字典代替尝试的是password而不是admin)——payloads——add 字典——start attack
得出来密码是123456,再次登录得flag
bp使用博客:https://blog.csdn.net/u011781521/article/details/54772795
简单分析代码可知,当赋值a,b满足条件时就可以得到flag1+flag2
条件一
if($a==0 and $a){
echo $flag1;
}
参数a==0并且a为真时输出flag1
条件二
if(is_numeric($b)){
exit();
}
if($b>1234){
echo $flag2;
}
第一个:如果b是数字或者数字字符串则退出
第二个:当b>1234,输出flag2
首先对于a的话,我们可以直接传一个字母a进去,因为a是没有赋值的,所以通过比较,字符串’a’==0是true的。并且a也是true的。
对于b来说,赋值1235a,则b就不是数字串了。而且1235a会自动转换为1235大于1234
当然也有其他的方法,可以看flag是否完整来看赋值是否正确
1. PHP中“= = ”和“= = =”
“==” 在进行比较的时候,会先将字符串类型转化成相同,再比较。
当一个数值和字符串进行比较的时候,会将字符串转换成数值
“===” 在进行比较的时候,会先判断两种字符串的类型是否相等,再比较
例:“admin”==0 比较的时候,会将admin转化成数值,强制转化,由于admin是字符串,转化的结果是0自然和0相等;
“1admin”==1 比较的时候会将1admin转化成数值,结果为1;
而“admin1“==1 却等于错误,也就是"admin1"被转化成了0;
2. is_numeric() 函数
is_numeric(b)表示b为数字或者数字字符串的时候,is_numeric的值为真
3. PHP弱类型
php一个数字和一个字符串进行比较或者进行运算时,PHP会把字符串转换成数字再进行比较。PHP转换的规则的是:若字符串以数字开头,则取开头数字作为转换结果,若无则输出,纯字母被转换为0。若字符串以字母开头,也输出0