从黑客角度检验oracle数据库
2008-09-08 12:51:22 来源:WEB开发网– Password: Hardtoguesspassword
sql语句: – SELECT * FROM WebUsers WHERE
Username=’Bob’ AND
Password=’Hardtoguess’
这是我们一个典型的检验机制在登陆到web site上时,然后通过select语句和数据库进行匹配,如果匹配建立,用户被鉴别。如果在我们的代码中记录集合为空,将准备一个无效的username或者password,登陆被拒绝。
5 黑客的输入
代替password的输入:
– Aa’ OR ‘A’=‘A‘
相应的sql语句:
– SELECT * FROM WebUsers WHERE
Username=’Bob’ AND Password=’Aa’ OR
‘A’=‘A’
黑客已经进入了数据库。
6 Selecting from other Tables
• To select data other than the rows from the
table being selected from
• UNION the SQL Statement with the
DBA_USERS view.
这是另一个例子取得数据从其他的表中,这与当前的查询无直接联系。最好的方法是查找屏幕中包含选项的动态列表。如果这个sql只是注意一个单值,黑客不能得到其他数据。
而且一些小技巧单一查询变成2个查询或者是把他们组合起来,这有点难道,你要匹配列数还有列的数据类型。然后一些服务器提供你一个错误的消息,使得这项是可行的。一些Error类似为:
Number of columns does not match
Or
2nd column in UNION statement does not match the type of the first statement.
7Sample ASP Page
Dim sql
Sql = “SELECT * FROM PRODUCT WHERE
ProductName=’” & product_name & “’”
Set rs = Conn.OpenRecordset(sql)
‘ return the rows to the browser
Once again we have the ASP page. An attacker does not really need this, but it does
make our lives easier for demonstration purposes. Once again we are not using
parameterized queries, but instead are concatenating a string to build our SQL
statement.
更多精彩
赞助商链接