小迪安全笔记-14

第14天:PHP开发-个人博客项目_输入输出类_留言板_访问IP_UA头_来源

知识点

1.PHP-全局变量$_SERVER

2.MYSQL-插入语法INSERT

3.输入输出-XSS&反射&存储

4.安全问题-XSS跨站&CSRF等

搜索框:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<br><br><hr>
<form id="form1" action="" method="post">
<label for="search">内容搜索:</label>
<input type="search" name="search" id="search">
<input type="submit" name="submit" id="submit" value="提交">
</form>
<hr>
</body>
</html>

留言板

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
留言:
<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>
<hr>
<p>&nbsp; </p>
</body>
</html>

这里只是有一个留言板的功能,并没有处理数据的能力

后端显示留言内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$i=@$_POST['id'];



$n=@$_POST['name'];



$q=@$_POST['qq'];



$c=@$_POST['content'];



echo $i.$n.$q.$c;

显示留言内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$sql1='select * from sy_message';

$result=mysql_query($sql1,$conn);

while($row=mysql_fetch_array($result)){

​ echo '<br>';

​ echo 'ID:'.$row['id'].'<br>';

​ echo '昵称:'.$row['name'].'<br>';

​ echo 'QQ:'.$row['qq'].'<br>';

​ echo '内容:'.$row['message'].'<br>';

}

在输入框输入 每刷新一次就会弹窗一次,而小迪打开自己的网站,在自己的网站上的搜索框输入 就不会刷一次弹一次

原因是前者是植入到数据库里面的,存储型xss

接受你的输入,然后把你的输入输出 —–xss

PHP全局变量-$_SERVER

php $_SERVER相关用法:https://www.cnblogs.com/ichenchao/articles/11014247.html

显示浏览器信息:

浏览器信息.jpg

代码:

1
2
3
<?php
$ua=$_SERVER['HTTP_USER_AGENT'];
echo $ua;

案例

墨者靶场-来源页伪造

修改referer为 googel.com 就行了,墨者开靶场要墨币,一共也没有几个,就不开了,这类题目之前也没少做

CSRF(跨站点请求伪造)

csrf.png

ip伪造

ip地址可以伪造,但是走底层的话是伪造不了的