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