总之就假期很划水,所以博客搞好了这么久才开始写,好,话不多说直接写

view_source

题目描述:X老师让小宁同学查看一个网页的源代码,但小宁同学发现鼠标右键好像不管用了。
题目提示flag在源码里面,但通常的右键查看源码用不了,这个时候可以使用网页自带的f12页面查看,如果这个办法也不能使用(因为不知为啥现在环境打不开,所以不清楚),那就在网页地址前加上view-source:然后访问就能看到源码,然后找到flag,提交
(附:快捷键 Ctrl+F4)

robots

题目描述:X老师上课讲了Robots协议,小宁同学却上课打了瞌睡,赶紧来教教小宁Robots协议是什么吧。
在网址的后面加上/robots.txt,查看该网址有哪些文件夹之类的,然后就输入进去,找到一个写着flag的php文件,打开它就拿到flag了
这个是robots协议的知识
以下我就复制一下百度,顺便自己复习一下:
robots协议也叫robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。robots.txt应放置于网站的根目录下。如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的robots.txt,或者使用robots元数据(Metadata,又称元数据)。
robots协议并不是一个规范,而只是约定俗成的,所以并不能保证网站的隐私。
robots.txt文件是一个文本文件,使用任何一个常见的文本编辑器,比如Windows系统自带的Notepad,就可以创建和编辑它 。robots.txt是一个协议,而不是一个命令。robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。robots.txt文件告诉蜘蛛程序在服务器上什么文件是可以被查看的。
当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。百度官方建议,仅当您的网站包含不希望被搜索引擎收录的内容时,才需要使用robots.txt文件。如果您希望搜索引擎收录网站上所有内容,请勿建立robots.txt文件。
如果将网站视为酒店里的一个房间,robots.txt就是主人在房间门口悬挂的“请勿打扰”或“欢迎打扫”的提示牌。这个文件告诉来访的搜索引擎哪些房间可以进入和参观,哪些房间因为存放贵重物品,或可能涉及住户及访客的隐私而不对搜索引擎开放。但robots.txt不是命令,也不是防火墙,如同守门人无法阻止窃贼等恶意闯入者。
简单来说就是一种引导文件,告诉来访者什么能看,什么不能看,但别人接不接受你的引导就是另一个问题了

backup

题目描述:X老师忘记删除备份文件,他派小宁同学去把备份文件找出来,一起来帮小宁同学吧!
打开界面,界面上问我是否知道这个index.php备份文件的名字,备份文件一般是加上bak作为后缀,所以就直接在网站后面输入/index.php.bak,下载这个文件打开就能拿到flag了。

cookie

题目描述:X老师告诉小宁他在cookie里放了些东西,小宁疑惑地想:‘这是夹心饼干的意思吗?’
界面中央写着:你知道什么是cookie吗?firefox直接f12点开请求:200的啥也没有,就看443的,看见cookie里写着look-here=cookie.php,就在网址后加上/cookie.php访问后写着See the http response,然后在Firefox的网络一栏点开200状态的一栏,看右边的消息头,发现叫flag的一栏,就拿到了
cookie我了解也不是很清楚(做留言板的时候登录认证也用的session),暂时就知道用于登录记录,然后保存在本地,所以容易被恶意利用,,需要进行随机加密,本菜鸡暂时还不会,会了一定补上

disabled_button

题目描述:X老师今天上课讲了前端知识,然后给了大家一个不能按的按钮,小宁惊奇地发现这个按钮按不下去,到底怎么才能按下去呢?
这个就很简单了,打开,写着一个不能按的按钮,下面有一个写着flag的方框,按一下没反应,f12打开页面编辑器,看到按钮那一栏的代码有一个属性是disable,很明显这就是问题了,双击或者右键编辑把它删除,点一下周围,然后这个按钮就能按了,按一下,flag就显示了,基础的前端的button知识

weak_auth

题目描述:小宁写了一个登陆验证页面,随手就设了一个密码。
直接login,得到一个弹窗,写着please login as admin,那就输入admin和admin,说不定就以这两个作为账号密码了呢(雾),得到写着password error的弹窗,然后按f12看看,写着maybe you need a dictionary,额,大概就是让我们用burpsuites的弱口令密码爆,密码就是123456,总之猜不到就试试burpsuites爆破吧

simple_php

题目描述:小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。
打开是一段代码

1
2
3
4
5
6
7
8
9
10
11
12
13
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不为数字并且b满足!is_numeric(),也就是不能是纯数字且大于1234时,就会把flag给我,所以a的值就随便输入个不是数字的字符或者输入一堆首字符为字符或0的非纯数字,当然00也是可以的,b就输一个大于1234的数,后面可以添任意字符,然后访问就能在页面得到flag
代码审计
常用的php正则

1
2
3
4
5
6
7
8
9
10
11
$_SERVER|$_COOKIE|$_REQUEST|$_GET|$_POST 获取用户输入

eval(|assert(|system( 命令执行

require(|require_once(|include(|include_once( 文件包含

file_get_contents(|file(|fopen(|highlight_file(|show_source(|unlink 文件读取,写入,删除

simplexml_load_string XXE

unserialize 反序列化漏洞

复制粘贴太长了不看,直接贴网站->代码审计

get_post

题目描述:X老师告诉小宁同学HTTP通常使用两种请求方法,你知道是哪两种吗?
点开可以看到叫我传值,传就完事了,get直接在url传值,post可以使用Firefox的插件hackbar传值,直接编辑HTML写一个表单也是可以的,毕竟值都告诉我们了,刚刚终于打开了,确实可以这样操作

xff_referer

题目描述:X老师告诉小宁其实xff和referer是可以伪造的。
这里就要用到burpsuites了,抓包,然后转到重发器慢慢操作,要求ip地址必须为123.123.123.123,所以加个X-Forwarded-For:123.123.123.123,发送,返回界面要求必须来自www.google.com,所以加个Referer:www.google.com,发送就能在源码得到了,伪造ip也可以用Firefox的插件X-Forwarded-For Header,非常简单

webshell

题目描述:小宁百度了php一句话,觉着很有意思,并且把它放在index.php里。
打开网址,看到->你会使用webshell吗?<?php @eval($_POST['shell']);?> ,一句话木马已经给我整好了,只要我传进去就行了,用hackbar传post进去就行,或者还是构造表单传,先system("ls");看文件,然后就读取那个文件,比方说file_get_contents,或者highlight之类的都行,就能得到flag了
暂时能看懂这种简单的,之后再去试试需要自己构造的

command_execution

题目描述:小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。
打开网址,让我输入个地址ping一下,我就输个123.123.123.123,然后ping,返回了,然后因为是在命令行里的指令,所以想到了加个|符号,就可以在命令行后面输入自己想写的命令,比如说自己在cmd里写个123.123.123.123|dir,就会跳出当前文件夹下的文件,所以就试着在框里输入,于是返回了index.php,感觉不是我想要的,所以返回上一级,也就是dir ../..,然后一个文件夹一个文件夹打开看,都没有,继续返回../../..,然后一个个打开,用眼睛去看,终于在home里面找到一个flag.txt,于是我就cat ../../../home/flag.txt,终于拿到了flag
当然也可以把|换成&|运算符是执行|后面的语句,如果|前面或者后面的语句不能执行就会直接报错,然后&是符号前后的都会执行,但如果哪个错就会报错哪个,但正确的指令仍然会运行,然后还有||&&,这两个的功能和单个的恰好相反,也就是说&&的用法和|一样,||的用法和&一样,(暂时个人感觉是这样,如果以后发现有什么问题再补上吧),||&&是条件or和and,而|,&,^,~以及>><<都是位运算
详情见位运算

simple_js

题目描述:小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} )
打开看到弹窗,输入几下都是返回fauxpasword,果然还是得祖传f12,看到一串逗号隔开的数字,打开devc++,将这些数字统统转化成字符,就是Fauxpsword,然后往下看,一堆x开头的数字,想来是16进制,然后打开在线解码,当然devc++也行,然后又是一堆数字,再转化成字符,根据提示,打包提交,确实是flag
这个就是js弹窗的知识点,会看js代码就行

Edited on

Give me a cup of [coffee]~( ̄▽ ̄)~*

muhua WeChat Pay

WeChat Pay

muhua Alipay

Alipay

muhua PayPal

PayPal