SQL注入的注入點找法
這是一次新手白帽子耗時一整天的sql注入經歷,一整天只為尋找一個靶場注入點的艱難經歷。
站點到手顯示每個大的分類模塊嘗試,之后轉到每一個大類下面的小功能模塊大概都嘗試一遍身心俱疲沒發現注入點,于是著手于搜索框,又是一番折騰最終無果,于是繼續下一個注冊/登入界面 因為這個靶場是可以注冊并登入的,于是注冊登入又在改名字改密碼一番折騰,結局并沒有改變還是無果。快放棄了身心俱疲就隨便點點,每一個站點都存在參數每一個都一樣如果不是注入點而在后面加了“ ’ ”的話則會404,就這么隨便一點,我在一個不起眼的地方找到了注入點這一刻差點哭出來,這明明就是一個簡單的union注入的靶場而已。 哎~~~心酸啊,之后就好弄多了判斷字段 好家伙48個 果斷sqlmap 果然找到注入點之后一整天都不好用的sqlmap生效了,靶場通關了。
總結以下三點
1,注入點首先觀察搜索框的地址是否是有與數據庫交互,例如html這種幾乎是不存在注入的所以要先判斷是否有交互。
2,交互點一般是搜索欄、留言版、登入/注冊頁面、以及最利于觀察的搜索欄的地址如果類似于http//www.xxx.com/index.php?id=1這種很大程度存在注入當然有些注入點不會這么一眼看出會有些比較復雜例如http://www.xxx.com:50006/index.php?x=home&c=View&a=index&aid=9 這樣的地址其實也可能存在注入。
3,管他什么地址只要結尾是xx=1(數字)就注就完事了。

附上幾個有用的語句:
order by x %23
length() 返回字符串的長度
substr() 截取字符串
mid() left() 從左側開始取指定字符個數的字符串
concat() 沒有分隔符的連接字符串
concat_ws() 含有分隔符的連接字符串
group_concat() 連接一個組的字符串
ord() 返回ASCII碼
ascii()
md5() 返回MD5值
floor(x) 返回不大于x的最大整數
round(x) 返回參數x接近的整數
rand() 返回0-1之間的隨機浮點數
sleep() 睡眠時間為指定的秒數
if(true,t,f) if判斷
schemata mysql中所有數據庫的信息
schema_name 所有數據庫名
tables 數據庫表中的信息
table_schema 記錄數據庫名
table_name 記錄數據表名
columns 列信息
column_name 字段名
version() 數據庫版本
database() 當前數據庫名
user() 用戶名
current_user() 當前用戶名
system_user() 系統用戶名
@@datadir 數據庫路徑
@@version_compile_os 操作系統版