1.PHP-全局变量$_SERVER
2.MYSQL-插入语法INSERT
3.输入输出-XSS&反射&存储
4.安全问题-XSS跨站&CSRF等
1.输入输出类安全问题
反射性xss
这个先准备一个数据,随便弄一个表名字,在随便弄一点数据存入即可
作为连接的数据库,然后构造搜索框和输出回显
数据库配置文件
定义数据库查询语句,并且输出来
而上面会出书我们搜索的3的这个回显,如果我们插入js的代码,js就是前端html的代码,在代码输出的时候就会当作Jscript代码去执行
输入<script>alert(1)</script>
就会造成弹窗,这个可以盗取cookie和结合工具进行钓鱼,
存储型xss
先写html1的留言表单
<head><meta charset="UTF-8"><title>留言板</title>
</head>
<hr>留言板<hr><form id="form1" name="form1" method="post"><p><label for="textfield">ID:</label><input type="text" name="id" id="textfield">//</p><p><label for="textfield2">昵称:</label><input type="text" name="name" id="textfield2"></p><p><label for="textfield3">QQ:</label><input type="text" name="qq" id="textfield3"></p><p><label for="textarea">内容:</label><textarea name="content" id="content"></textarea></p><p><input type="submit" name="submit" id="submit" value="提交"></p>
</form>
<p>
<hr>
<p>留言内容;</p>
</html>
然后构造一个存储数据的数据库
<?php
include('config/data.php');
$i=$_POST['id'];
$n=$_POST['name'];
$q=$_POST['qq'];
$c=$_POST['content'];
//INSERT INTO `lyb` VALUES (1, 176, 485, 'zI6V87Q1ki', 'UjScLrVEDL', '6UNgmHCNfe', 'admin');
$sql="INSERT INTO `lyb` VALUES ('$i', '804', '$q', '$n', '$c', 'admin');";mysql_query($sql,$data);
echo $i.$n.$q.$c;
这里要注意主键不能重复,不然就不能写入文件,我数据库的主键是id是1
能正常写入数据
之后在写一个存储函数的输出
上面函数每次都会执行,因为数据库没有设置为空约束,所以空数据也会添加上去,所以加一个判断条件,数据不为空的时候在执行
if(empty($i)){$sql="INSERT INTO `lyb` VALUES ('$i', '804', '$q', '$n', '$c', 'admin');";mysql_query($sql,$data);
}
//INSERT INTO `lyb` VALUES (1, 176, 485, 'zI6V87Q1ki', 'UjScLrVEDL', '6UNgmHCNfe', 'admin');$sqlc="select * from lyb";
mysql_query($sqlc,$data);
$result=mysql_query($sqlc,$data); //执行的结果赋值给变量
while($row=mysql_fetch_array($result)){ //循环,括号内是条件,row定义数组echo 'id:'.$row['flag'].'<br>'; //输出关联数组内容echo 'qq:'.$row['name'].'<br>';echo 'name:'.$row['id'].'<br>';echo 'content:'.$row['id'].'<br>';
}
这种就会造成存储型xss
我们把内容换成js语句
<script>alert(1)</script>
没访问一次,都会谈一次窗
这种存储型xss就会把攻击语句存储到了对面的数据库,而每次访问这个网站,都会把存储到数据库的攻击语句都会被查询出来,调用执行
输入输出类
只要是可以输入,并且展示出来的地方都可能存在,留言板,评论区,聊天框,私信等等
深入探讨xss
而有一些网站会接受并且显示我们的ip浏览器信息等等
比如站长之家
而这个浏览器信息我们就可以抓包,修改成xss的语句,实现弹窗,但是这个已经被修复了,把xss语句过滤掉了
就这样只要显示在网站界面我们可以控制的都可以尝试xss漏洞
referer伪造
这个比如一些登录框,点击它之后登录成功获取到的referer是登录网站的,而我们直接访问referer就是我们的浏览器,有一些就会严重referer来源,比如是他的网站跳转过来的才可以
ping
an