- web1
- web2
- web3
- web4
- web5
- web6
- web7
- web8
- web9
- web10
解答:右击,查看源码;f12;ctrl+u
web2解答:ctrl+u可以看到flag。 进一步学习:无法右键,无法选择文本,无法f12。 ctrl+u看到源码内容是:
window.oncontextmenu = function(){return false};
window.onselectstart = function(){return false};
window.onkeydown = function(){if (event.keyCode==123){event.keyCode=0;event.returnValue=false;}};
oncontextmenu 事件:在元素中用户右击鼠标时触发并打开上下文菜单。 (上下文菜单(context menu),指的是Windows操作系统中任何地方右击鼠标会出现俗称的“右键菜单”) onselectstart事件:触发时间为目标对象被开始选中时(即选中动作刚开始,尚未实质性被选中) onkeydown事件:在用户按下一个按键时执行Javascript代码 keyCode表示键盘编码,编码123为f12。
//取消鼠标右键
window.oncontextmenu = function(){return false};
//禁止用户选中网页上的内容
window.onselectstart = function(){return false};
//按键f12无响应
window.onkeydown = function(){if (event.keyCode==123){event.keyCode=0;event.returnValue=false;}};
键盘编码:
解答:burp抓包,response有flag 进一步学习:
http请求构成: 请求行 请求头部 空行 请求数据
在这里插入图片描述 请求行3个字段构成:请求方法、uri字段、HTTP协议版本字段
请求方法: GET:从指定资源中请求数据。 POST:向指定资源发送数据进行处理请求。 HEAD:从指定资源中请求响应消息报头(传输状态行和标题部分)。 PUT:向指定资源位置上传其最新内容,可以替换指定资源中的当前内容。 DELETE:请求服务器删除指定资源。 CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。开启一个客户端与所请求资源之间的双向沟通的通道。它可以用来创建隧道(tunnel)。 OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求。 TRACE:路径追踪。请求服务器回送收到的请求信息,主要用于测试或判断。
请求头部:
Header头部解释Host指定请求的服务器的域名和端口号Content-Length请求的内容长度Accept指定客户端能够接受的内容类型X-Requested-WithAjax异步请求User-Agent发出请求的用户信息Content-Type请求的与实体对应的MIME信息Origin指明当前请求来自哪个站点Referer先前网页的地址,当前请求网页紧随其后Accept-Encoding指定浏览器可支持的web服务器返回内容压缩编码类型Accept-Language浏览器可接受的语言CookieHTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器Connectiont表示是否需要持久连接(HTTP 1.1默认进行持久连接)Date请求发送的日期和时间X-Forwarded-For它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。(HTTP_X_FORWARDED_FOR)Via通知中间网关或代理服务器地址,通信协议。(例:Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1))Clinet-IP用户真正IP地址。接收变量HTTP_CLIENT_IPFrom发出请求的用户的Email响应消息状态码:
状态码解释1xx指示信息–表示请求已接收,继续处理2xx成功–表示请求已被成功接收、理解、并接受3xx重定向–需要后续操作才能完成这一请求4xx客户端错误–请求有语法错误或请求无法实现5xx服务器端错误–服务器在处理某个正确请求时发生错误 状态码解释200OK,客户端请求成功301永久重定向。表示所请求的资源已经永久地转移到新的位置,Location字段表示重定向后的资源新位置302url跳转。临时重定向400Bad Request,客户端请求有语法错误,不能被服务器所理解401Unauthorized,请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用403Forbidden,服务器收到请求,但是拒绝提供服务404Not Found,请求资源不存在405Method Not Allowed(客户端错误)由于方法和资源组合不正确而出现此错误。 例如,您不能对一个实体集合使用 DELETE 或 PATCH412Precondition Failed 客户端错误500Internal Server Error,服务器发生不可预期的错误503Server Unavailable,服务器当前不能处理客户端的请求,一段时间后可能恢复正常 web4解答:(后台地址泄露)查看robots.txt 查看/flagishere.txt,获取flag。
进一步学习:
robots.txt是存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器,此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。(详见百度百科robots协议)
web5解答:(phps源码泄露)查看index.phps,下载index.phps后打开获取flag。 进一步学习:
phps文件是php的源代码文件,通常用于提供给用户(访问者)查看php代码,因为用户无法直接通过Web浏览器看到php文件的内容,所以需要用phps文件代替。(phps文件)
web6提示:解压源码到当前目录,测试正常,收工 解答:(源码泄露)存在源码的压缩包没有删除,访问/www.zip。知道了flag所在txt的文件名和路径,直接访问/fl000g.txt
进一步学习:
网站管理员一般会将网站源码进行备份,以便于出问题后恢复网站。但备份时,安全意识薄弱的管理员经常会使用一些常见的压缩备份名,如文件夹的名字www.zip、web.rar,或者backup.rar等,有的甚至就直接把备份好的源码放了在网站根目录里。 常见备份后缀名:.rar
、.zip
、.7z
、.tar.gz
、.bak
、.txt
、.old
、.temp
提示:版本控制很重要,但不要部署到生产环境更重要。 解答:(git泄露)关于版本控制,首先想到的是git泄露。访问/.git
,获取源码。 进一步学习:
版本控制 版本控制器 目前影响力最大且使用最广泛的是Git(分布式版本控制系统)与SVN(集中式版本控制)。 版本控制中的最基本的模块是 “仓库(Repository)”。仓库里存储了项目积攒的所有版本和元数据。在 Git 中,仓库是项目的根目录下名为 “.git” 的隐藏文件夹。
web8提示:版本控制很重要,但不要部署到生产环境更重要。 解答:(svn泄露)访问 /.svn
, 得到 flag
提示:发现网页有个错别字?赶紧在生产环境vim改下,不好,死机了。 解答:(vim缓存信息泄露),访问index.php.swp (按理应该是访问.index.php.swp
,这里没有前面的.
,稍稍有点小问题,理解知识点就可以了) 进一步学习:
vim在编辑文本时就会创建临时缓存文件,用来备份缓冲区中的内容。当程序异常退出时会被保留下来,因此可以通过该缓存文件恢复原始文件内容。 VIM不正常退出产生的swp文件
web10提示:cookie 只是一块饼干, 不能存放任何隐私数据 解答:burp抓包可以在请求头看到cookie,也可以从firefox中的插件直接看。
进一步学习:
cookie和session的区别