Brute Force(暴力測試):
對比難度為Low和high的代碼可以發現
相對於Low,High在用戶名和密碼處分別加了兩個過濾函數
Stripslashes:
輸入:字符串。
輸出:返回一個去除轉義反斜線后的字符串(\' 轉換為 ' 等等)。雙反斜線(\\)被轉換為單個反斜線(\)。
mysql_real_escape_string
:
以下字符前添加反斜杠: \x00, \n, \r, \, ', " 和 \x1a.
代碼是用來防止sql注入代碼,對暴力破解這一項並沒有影響,只不過上面爆破成功的萬能密碼就沒有作用了。
Command Execution(命令注入攻擊):
等級為Low時代碼
代碼此時僅做了對Win和linux情況下的不同指令的區別,在Win下直接進行Ping指令,在Linux下,進行Ping –c 3指令(Linux不加-c 3會一直發包),但是並未對target有任何過濾操作。
window 和 linux 下可以直接用 &&和;來執行多條命令
此時在框內輸入127.0.0.1;net user
成功執行命令
Medium時候代碼為
添加了對&&和;的過濾,此時可使用||
||為當執行前面的命令失敗時,執行||后的命令
當等級為high時,代碼為
其中先是利用stripslashes函數將target中反斜線去除,再判定是否target為以.為划分的四個數字類別數組。
目前不會。
Stristr:
stristr ( string $haystack , mixed $needle [, bool $before_needle = false ] )
->返回 haystack
字符串從 needle
第一次出現的位置開始到結尾的字符串。
-> 如果 needle
不是一個字符串,那么它將被轉換為整型並被視為字符順序值
php_uname:
string php_uname ([ string $mode = "a" ] )
mode 是單個字符,用於定義要返回什么信息:
- 'a':此為默認。包含序列 "s n r v m" 里的所有模式。
- 's':操作系統名稱。例如: FreeBSD。
- 'n':主機名。例如: localhost.example.com。
- 'r':版本名稱,例如: 5.1.2-RELEASE。
- 'v':版本信息。操作系統之間有很大的不同。
- 'm':機器類型。例如:i386。