所謂最簡單的SQL注入



今天沒帶眼鏡,,所以不太想幹活

也不知怎的,

對公司另一同事寫的業務臺模塊來了興趣..幫其"測試一下"


在VC的代碼片段是

CString SqlText = "Select User_ID, Login_Name, Login_Pwd, Chinese_Name,  Operation from A_Employee  Where Login_Name = '"
		+ m_username.Trim() 
		+ "' and pwdcompare(" + tmppwd
		+ ", Login_Pwd, 0) = 1";


SqlText = "Select * FROM A_Employee WHERE Login_Name = '" + m_username.Trim() + "'";


把其放到SQL後,

Select User_ID, Login_Name, Login_Pwd, Chinese_Name,  Operation 
from A_Employee 
Where Login_Name = 'admin' and pwdcompare('******', Login_Pwd, 0) = 1

 Select * FROM A_Employee WHERE Login_Name = 'admin ';
 


再用註釋短路掉之後....也就是在輸入用戶名是 admin'--

(第一個單引號與之前語句的單引號配對, 後面跟的是用註釋把後面的密碼驗證邏輯給短路掉.

變成了下面的

Select User_ID, Login_Name, Login_Pwd, Chinese_Name,  Operation 
from A_Employee 
Where Login_Name = 'admin'--' and pwdcompare('******', Login_Pwd, 0) = 1

 Select * FROM A_Employee WHERE Login_Name = 'admin '--';





這樣就登陸了,,不過我還是要知道有Admin這個用戶...有點假,

不過後來再想了一下. 公司這個軟件是在局域網使用的,對安全性要求沒有那麼高也是正常的,



其實只要在輸入的時候,把註釋類似的敏感字符給註釋掉就可以了.





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章