文章目录
view_source
查看网页源代码的方式有4种,分别是:1、鼠标右击会看到”查看源代码“,这个网页的源代码就出现在你眼前了;2、可以使用快捷Ctrl+U来查看源码;3、在地址栏前面加上view-source,如view-source:https://www.baidu.com ; 4、浏览器的设置菜单框中,找到“更多工具”,然后再找开发者工具,也可以查看网页源代码。
题目:
打开题目场景给的网址,靶机环境
使用burp suite抓包,在repeater中go一下,在右侧就看到了flag
get_post
题目:
靶机环境:
题目给了提示,首先使用GET方式传参,可直接在网址后面通过/?a=1的方式传参
然后又提示使用POST传参,借助渗透便携版的浏览器,使用post data传参,即可得到flag
cyberpeace{8854cdde7643a8016d70cd171636effd}
robots
robots是网站跟爬虫间的协议,用简单直接的txt格式文本方式告诉对应的爬虫被允许的权限,也就是说robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。
题目 :
查看robots.txt文件
根据提示,flag在这个php文件中
cyberpeace{89ef9b079184ff79b2dfed38fe5d57de}
backup
常见备份文件的后缀为.bak
题目:
靶机环境:
网址后面输入/index.php.bak即可下载备份文件
flag就在里面
Cyberpeace{855A1C4B3401294CB6604CCC98BDE334}
cookie
Cookie是保存在客户端的纯文本文件。 比如txt文件。所谓的客户端就是我们自己的本地电脑。当我们使用自己的电脑通过浏览器进行访问网页的时候,服务器就会生成一个证书并返回给我的浏览器并写入我们的本地电脑。这个证书就是cookie。一般来说cookie都是服务器端写入客户端的纯文本文件
题目:
靶机环境:
使用burp抓包查看:cookie字段有个php文件
打开PHP文件看看,提示查看http的response
使用开发者工具(查看元素),查看响应头,得到flag
cyberpeace{1d658c8318cdd65174967ec4fa7a8641}
或
disabled_button
题目:
靶机环境:
使用开发者工具检查:
disabled 属性规定应该禁用 input 元素。
被禁用的 input 元素既不可用,也不可点击。可以设置 disabled 属性,直到满足某些其他的条件为止(比如选择了一个复选框等等)。然后,就需要通过 JavaScript 来删除 disabled 值,将 input 元素的值切换为可用。
删掉" disable="" "后便可点击按钮,点击后效果如下
得到flag
cyberpeace{4b4d59e781aa482907001f6a26f4dc4f}
weak_auth
题目:
靶机环境:
我输入了用户名admin 密码123456就进入了?
常规应该还是要使用burp暴力破解的吧
command_execution(命令执行)
WAF主要防护的是来自对网站源站的动态数据攻击,
可防护的攻击类型包括SQL注入、XSS攻击、CSRF攻击、恶意爬虫、扫描器、
远程文件包含等攻击,相当于防火墙。
常见的命令执行:
command1 & command2 :先执行command2后执行command1
command1 && command2 :先执行command1后执行command2
command1 | command2 :只执行command2
command1 || command2 :command1执行失败,再执行command2(若command1执行成功,就不再执行command2)
题目:
靶机环境:
输入ip地址试试
ping命令常常会存在命令注入漏洞,如我们可以用127.0.0.0.1&ls
来测试
看到执行了ls命令,说明存在命令执行漏洞
输入命令127.0.0.1 & find / -name flag.txt
看看有没有flag.txt文件,以及文件在哪
然后进入文件读取flag
127.0.0.1&cat /home/flag.txt
cyberpeace{3b6ada323d113d987692af9dd7b8ee00}
simple_php
题目:
靶机环境:
简单审计下代码,发现需要以get的方式传入两个参数a和b。
a参数的要求 a必须等于0且a为真
b参数的要求 b不能为数字且b大于1234
这道题的核心问题是理解PHP语言的弱类型(我也不是很懂这里……)
php一个数字和一个字符串进行比较或者进行运算时,PHP会把字符串转换成数字再进行比较。PHP转换的规则的是:若字符串以数字开头,则取开头数字作为转换结果,若无则输出0。
例如:00a转换后应该是000,而a则为0,0==0这当然是成立的.
构造命令:http://220.249.52.133:42267/?a=00a&&b=12345s
xff_referer
题目描述:X老师告诉小宁其实xff和referer是可以伪造的。
靶机环境:
知识点:
xff——伪造IP地址来源
格式为:
X-Forwarded-For: client1, proxy1, proxy2, proxy3
左边第一个是浏览器IP,依次往右为第一个代理服务器IP,第二个,第三个(使用逗号+空格进行分割)
referer——伪造来源浏览器
伪造方式:
可以通过专门的抓包改包工具或者浏览器插件或者使用脚本语言构造headers参数。
使用burp抓包,修改XFF的ip地址:
这时提示,必须来自https://www.google.com
根据提示,将referer字段 (会发现头信息中最初没有这个字段,需要自己添加上去),修改为https://www.google.com
go一下即可得到flag
webshell
题目描述:小宁百度了php一句话,觉着很有意思,并且把它放在index.php里。
靶机环境:
根据题目提示,他已经有一个一句话木马文件index.php放到了服务器中了,不用自己上传了,只需要使用中国蚁剑直接连接shell即可
连上之后在flag文件下找到了flag
cyberpeace{515a5adf3423cdf096ab1bf02e069756}
simple_js
题目描述:小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} )
靶机环境:有一个弹窗让输密码
输入试试
查看网页源码,
<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>
源码中使用的一些函数
split() 方法用于把一个字符串分割成字符串数组。
fromCharCode() 可接受一个指定的 Unicode 值,然后返回一个字符串。
prompt()方法用于显示可提示用户进行输入的对话框。
观察代码有两个循环,第一个循环是将前五个Unicode 值,然后返回一个字符串,写个脚本验证一下
后一个循环功能是一样的,只不过是把后面的Unicode 值,返回成字符串。
我们随便输什么都是返回这个,所以这是一个假密码,那真正的密码应该就是下面这一串东西:
\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
十六进制转化为文本字符
55,56,54,79,115,69,114,116,107,49,50
再用python脚本运行一下得到flag
786OsErtk12,再加上格式首部
Cyberpeace{786OsErtk12}
(小白的艰难求学路……)