Web发展至今,前端危害最大的是XSS(跨站脚本)和CSRF(跨站请求)漏洞。
<from action="" method="get">
<input type="text" name="xss"/> 文本框
<input type="submit" value="test"/> 按钮
</from>
<?php
$xss=@$_GET['xss'];
if($xss!==null) {
echo $xss;
}
?>
代码说明: 包含一个表单,用于向页面自己发送GET请求,带一个名为xss的参数;php读取该参数且不为空则echo输出xss参数内容。这里没有设置任何过滤和检查机制,所以xss会执行任何的代码包含 )在输出弹窗后HTML代码也会被改写;
<form action="" method="post">
<input type="text" name="xss"/>
<input type="submit" value="test"/>
</form>
<?php
$xss=@$_POST['xss'];
$con = mysqli_connect("127.0.0.1","root","123456");// 连接mysql
mysqli_select_db($con,"xss");// 连接xss库
if($xss!==null){
$sql="insert into temp(id,payload) values('1','$xss')";
$result=mysqli_query($con,$sql);
echo $result;
}
?>
用户输入的内容还是没有过滤,但是并不是显示在页面中,而是执行php+mysql命令将内容插入到数据库中; mysqli_connect(servername/ip , username , password): 设置数据库的登录地址,数据库登录名,登录密码等 建立MySQL数据库连接 【PHP 5.5+ 不再使用connect进行连接数据库,改用MySQLi或PDO_MySQL来进行连接】 mysqli_close() : 关闭数据库连接 mysqli_select:从数据库表中选取数据 mysqli_select_db():选取数据库 mysqli_query(参数/sql命令):执行sql命令,可以使用参数存储一个sql命令也可以在query中直接写明sql命令 ps:在输入提交script脚本时候注意字符转义的问题哦
<?php
$sql = mysqli_connect("localhost","root","123456");
mysqli_select_db($sql,"xss");
$shl="select payload from temp where id=1";
$result=mysqli_query($sql,$shl);
while($row=mysqli_fetch_array($result)){
echo $row['payload'];
}
?>
show.php文件的作用: 连接数据库打开xss库,执行sql命令查看temp表中的内容
上述的存储型XSS的流程是: 通过xss.php程序将xss脚本写入数据库中,在通过show.php查看存储在数据库中的xss脚本,以此达到解析脚本的方法。 xss数据从浏览器经过后端写入到数据库中,在经过后端调用数据库内容显示在页面上。
<?php
error_reporting(0);//禁用报错
$name = $_GET["name"];
?>
<input id="text" type="text" value="<?php echo $name; ?>"/>
<div id="print"></div>
<script type="text/javascript">
var text = document.getElementById("text");
var print = document.getElementById("print");
print.innerHTML = text.value ;// 获取text值输出print
</script>
对xss.php进行分析: php接收一个name的get请求,input标签中 id:text获得了name设置的请求值,在script中,print输出并将text的内容一并输出,而text的值就是name的请求内容(通过URL进行构造)
而构造的URL:http://localhost/xss.php?name=< img src=1 onerror=alert(1)> 含义是:name为调用一个 1 文件照片信息(img),如果不存在报错弹出窗口(alert)并显示内容为 1 。
通过xss跨站脚本,来获得用户的Cookie和其他有用的信息,利用平台的特性,xss利用诸如:xss Shell ,BeEF,Anehta,CAL9000……