记一次POST数据中JSON参数存在SQL延时盲注

起因是burp能测出注入点,放到sqlmap中却怎么也跑不出来,难道真得手注吗?经过一番折腾终于搞定sqlmap。

1.xray探测存在注入

e404915a430248568e36abcda5f9dda0.png

2.手工复测确定注入点为body中的json数据中的name值。 “ ’ ” 分号闭合,确定为时间盲注

fe1fbab37b9a4cd38ec82c9215ed79f3.png6e7ffb55f8924ff899d1c735fa21530e.pngd63864161dd44a22ac4d9d17ccd41117.png3.保存post包上sqlmap跑,怎么都跑不出来,期间想到用*标注注入点、用\转义name中的”,均失败。

796122dffe4943579f92982a3a0c0a73.png

4.使用-vvvvv查看sql发包情况

默认先测前面的type参数,回包中均有302,但不影响,继续往下翻,翻到最后发现一直在type中加payload,name直接跳过了。

50aeeb2d714841bd888879c3e503247c.png

5.这次在数据包中直接*标注name参数,免得打偏。

722dfef530eb4e99b04299e654726b1a.png

开始跑......

5257a66ad6aa467d8cdc3e50fee8aba6.png

15f1e96f4772474f8b79904991a09687.png

Cookie parameter ...这个选择y sqlmap直接停止。只能选择n,继续跑...

0b20df46702d4fa395a9e904c2646165.png

这次看着挺好,payload加对位置了,此payload手工测试没问题。6c87268fe9fd4345a370563d9ab9ae00.png

但还是没跑出来。。。

拿上面的数据包到burp中跑,测试正常延时,那是咋回事?

后来将数据包拿到burp中跑的时候发现,需要手工设置主机和端口

随后想到是不是端口问题?主机域名后面加上443端口再跑!

093064415f4b41208384b1c9ccde6e2c.png

8fd109ae00f64de594c048fafab5d68c.png

这次直接跑出来了。

a65f1b58bd4a4ba18a4bb58059db720f.png

最后总结一下:

1.sqlmap中的 -vvvvv参数真的挺好用。

2.在burp中手注发现注入点后,复制数据包放到sqlmap跑的时候需要手动加端口,burp中3.自动加,但是sqlmap需要手动加。

4.还一个重要的点,,没加端口使用sqlmap跑的时候,开始跑之前就会出302,让我选y,可能是没加端口的时候是80端口,所以302到443,,但这时候跑不出来,且看sqlmap的响应包中每个请求都有302响应,给人感觉一直请求的目标就不对。。后来加上443端口sqlmap的响应包就成200了,也能注成功了。

5.查看sqlmap  HTTP request发现一直到32个包才开始加入payload,不明白为啥。

6.最开始的时候,还出现了payload加在””后面,如”name”:”” ‘ and select,最后跑不出来,后来直接将name的值的””删除,发现payload正常了。

7.后面又发现可以直接将type参数删除,只保留name也能行,可避免注到type中去。

44d59c41695e412c8715a4247351964d.png

80时候老302

5a7c78d54e124998a6b7f9dcfe95c3e9.png回包中也是302,所以不对。

bab095c7f9c14f4eb7a7f65a0e3d5da4.png

 

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
sqlcore是一套方便的基于java应用系统数据的的检查工具,方便简单,是现代系统的自动化检测的有效工具 sqlcore可以用于如下的使用场景: 1.数据库的入分析 2.数据sql的执行效率分析 3.平台的监控和业务逻辑的分析 4.数据库防止死锁的分析 。。。。。。。。。。。。。。。。。。。 如何配置使用 1.系统需要正确的安装jdk和mysql数据,这个自己网上看看如何弄 2.配置jdbc的数据库连接 到这个文件里面修改数据库连接和密码 apache-tomcat-6.0.14.rar\apache-tomcat-6.0.14\webapps\ROOT\WEB-INF\classes\soso.properties 3.将数据库脚本sqlcore.sql导入数据库 这个脚本将创建一个sqlcore的数据库,并导入数据 4.启动压缩包里面的tomcat登录系统 http://localhost/输入验证码就可以了 5.上传你的jdbc驱动到系统 sqlcore-文件管理---上传你的jdbc 6.创建 版本 sqlcore-驱动版本---创建你的驱动版本,并管理你的jar 7.驱动方法拦截 sqlco玶e-方法编辑--选择你的驱动版本,选择你要拦截的方法 效率分析: 事物起点: 事物结束: 堆栈录: ConnectionPropertiesImpl s0: String s1: String s2: String[] s3: String s4: String s5: String s6: int s7: 你可以对任何方法进行设置,和参数设置 8.驱动打包 sqlcore-驱动版本---选择你刚才的版本, Pack 版本,系统进行处理版本处理,处理完成后弹出打包完成的提示对话框 9.下载驱动 视图分析---》版本视图---》下载该版本 下载你刚才处理的版本 10. 配置sqlcore到你的系统里面 将下载的压缩版本打开,将里面的*.jar放到你的系统里面,并将jdbc驱动替换掉系统里面的驱动 其SQLUtil.xml需要放到你的系统的class目录下这个是sqlcore的通信配置文件 在你的web.xml配置里面加入 <filter> <filter-name>SQLCore</filter-name> <filter-class> com.sqlutil.core.SQLCorefilter </filter-class> <init-param> <param-name>SQLCore</param-name> <param-value></param-value> </init-param> </filter> <filter> <filter-name>encode</filter-name> <filter-class> net.http.filter.CharacterEncodingFilter </filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>SQLCore</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 这个配置便于分析每一次的请求情况并数据的访问情况 启动你的系统,并访问你的系统,你系统的所有sql数据库相关情况都将传输到sqlcore平台里面 系统支持网站:http://www.ormcore.com 支持邮箱:[email protected] QQ:278082799
在 Java 获取 POST 请求JSON 参数可以使用以下方法: 1. 使用 Servlet: 如果你在使用 Servlet 进行 Web 开发,可以通过以下代码获取 POST 请求JSON 参数: ```java import javax.servlet.http.HttpServletRequest; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class MyServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { StringBuilder sb = new StringBuilder(); BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream())); String line; while ((line = reader.readLine()) != null) { sb.append(line); } String jsonString = sb.toString(); // 在这里处理 jsonString } } ``` 2. 使用 Spring MVC: 如果你在使用 Spring MVC 框架进行 Web 开发,可以通过以下代码获取 POST 请求JSON 参数: ```java import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; @RestController public class MyController { @PostMapping("/my-endpoint") public void handlePostRequest(@RequestBody String jsonString) { // 在这里处理 jsonString } } ``` 以上代码,`jsonString` 变量即为 POST 请求JSON 参数。 请意,在实际开发,你还需要进行一些参数校验、异常处理和逻辑处理等。以上代码仅提供了基本的获取 POST 请求 JSON 参数的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值