xss漏洞搭建
xss漏洞介绍
全称
跨站脚本(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets)的缩写CSS混
合,所以改名为XSS;攻击者会向web页面、input表单、URL、留言版等位置)插入恶意JavaScript
代码,导致管理员/用户访问时触发,从而达到攻击者的目的
XSS 的核心思想是在 HTML 页面中注入恶意代码。
分类
- 反射型 XSS(非持久型 XSS):注入代码从目标服务器通过错误信息、搜索结果等方式“反射”回来。
- 存储型 XSS(持久型 XSS):攻击脚本被永久地存放在目标服务器端,下次请求目标页面时不用再提交 XSS 代码。
- DOM-based 型:客户端的脚本程序可以动态地检查和修改页面内容,而不依赖于服务器端的数据。
- 基于字符集的 XSS:绕过转义规则,让人防不胜防。
AI简单网页测试
ok!爆更!
今天做第二个漏洞页面,选了一会,决定拿xss开刀。来吧,
以上为AI写的一个简单源码,换了一个,gpt3.5不给写xss的。
然而,这个页面经过测试,
payload:
<script>alert("XSS")</script>
结果:
有问题, payload是没问题的,功能也没问题,但是就是没有弹窗,目前不知道问题在哪。
xss-labs
观察xss-labs的源码,
审计一下(AI)
<!DOCTYPE html><!--STATUS OK--><html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script>
// 重写 window.alert() 函数,使其在调用时执行指定的操作
window.alert = function()
{
confirm("完成的不错!");
window.location.href="level3.php?writing=wait";
}
</script>
<title>欢迎来到level2</title>
</head>
<body>
<h1 align=center>欢迎来到level2</h1>
<?php
// 禁止显示 PHP 错误信息
ini_set("display_errors", 0);
// 获取名为 "keyword" 的 GET 参数的值
$str = $_GET["keyword"];
// 输出一条提示信息,包含用户输入的内容,并使用 htmlspecialchars() 函数转义特殊字符
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
// 输出一个表单,其中的输入框的值为用户输入的内容
<form action=level2.php method=GET>
<input name=keyword value="'.$str.'">
// 提交按钮
<input type=submit name=submit value="搜索"/>
</form>
</center>';
?>
<center><img src=level2.png></center>
<?php
// 输出 payload 的长度
echo "<h3 align=center>payload的长度:".strlen($str)."</h3>";
?>
</body>
</html>
运行结果为:
我猜,这是因为没有连接后端数据库吧(是吗是吗??大佬们指点一下吧,哭死了)
然后,另外写了一个:
<!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>
<h1>欢迎来到也米娜的留言板!</h1>
<p>请在下方输入您的留言:</p>
<form action="/post" method="GET">
<input type="text" name="message" placeholder="在这里输入您的留言...">
<input type="submit" value="提交">
</form>
<p>您的留言:</p>
<p>
<!-- 反射型XSS漏洞在这里 -->
<?php
if (isset($_GET['message'])) {
echo $_GET['message'];
}
?>
</p>
</body>
</html>
然后放在phpstudy里运行,然后
哎呦,我真的心累,目前我没有什么思路了。。
sql注入页面移植linux
Linux小皮搭建
我提前准备好了一个centos8的机子,目前原生还没有装任何的东西,从零开始嘛
以前也没用过centos8,这次试一试,我打算先试试小皮Linux版的,毕竟还算熟悉。
我的网络不好,yum安装总是显示失败,centos8有wget,所以用的wget下载。
安装完成后就是这个页面,记得截图
(我不打码了哦~)
登陆进去后会让你选lnmp还是lamp,nginx有点是高并发环境很优秀,架构比起来说也更好,
主要我也更习惯nginx
(apache有个.htaccess,当初学文件上传的时候可给我恶心坏了,所以本能嫌弃)
哦对,登陆进去后记得改密码哦~
(我至今仍觉得这种Linux web版的后台页面很帅)
sql注入页面移植
然后我们把自己写的那个页面放进去,然后尝试访问一下
ok,没问题
然后,测试一下,(铁定出问题,那个可是加了数据库的)
同样的数据库设置,在这个上面再来一次,
(不知道怎么做的看一眼上篇文章吼~)
(不贴图了哦~)
添加用于登录的数据库:test
登录数据库添加登陆表:
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL, email VARCHAR(50) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
上一篇没贴添加数据表的命令,这次加上
把对应的ip改为虚机的ip,然后用户名,密码,表名改成对应的,测试一下。没问题!
OK
有话说
嗯...
说实在的,开头做sql注入的简单页面挺简单的,给了我很大的信心,然而这一个xss漏洞页面的搭建一下子给我打成了原型,我是真没想到这么难。
最难的是,xss漏洞的危害性过高,如果有一个存在xss漏洞的页面被用作恶意用途,那带来的损失过于高。也因如此,网络上很少很少有关于搭建xss漏洞页面的攻略,包括gpt,也不给写这种,这给了我很大的阻力,所以目前的进度,是很慢的。
如果大家有经验的话,请您可以百忙之中指定一二,我一定感激不尽。明天我想飞机场去看看鸟语的攻略,或者github找一找,我觉得我对xss的逻辑就错了,很失落ing。。
那么今天的进度就到这了,Linux移植的时候也遇到了一些问题,也是逻辑性的,这其实还是比较麻烦的,(对我来说)不过也都是一些小问题,相信大家解决的一定比我省力,但如果真的有什么问题的话,可以评论或者私信我。
那么,拜拜。