对某博客的代码审计

在gitee上面找了一个个人博客项目,来进行实战代码审计,主要还是学习为主

技术菜菜,哪里错误希望师傅们指正

1、SQL注入

先了解Java Web中的数据传输流程

graph TB
id1(Controller.java 处理前台发送的请求)
id1-->id2(Service.java 定义接口_业务逻辑)
id2-->id3(ServiceImpl.java 对接口函数进行实现)
id3-->id4(Mapper.java Mapper接口)
id4-->id5(Mapper.xml 写sql语句查询数据库)

查SQL注入可以从Mapper看起

graph LR
id0(SQL语句)-.拼接.->id1
id1(Mapper)-->id2(Impl)
id2-->id3(Service)
id3-->id4(Controller)

1.1 Mapper层:

看到存在拼接函数form,接着往上查,Ctrl+鼠标左键(ArticleSqlProvider)

这里要理解Mybatis @SelectProvider

@SelectProvider(type=xxxx.class,method=”xxxx”) 可以理解为:

用自定义的provider类构造SQL语句

属性详解:

type 属性用于指定获取sql语句的指定类
method 属性用于指定类中要执行获取sql语句的方法

1.2 Impl层:

Ctrl+左键(getArticleListByCondition)到达Impl层

1.3 Service层

看到implements 实现接口IPostsService

Ctrl+左键(IPostsService)到达Service层

1.4 Controller层

Ctrl+左键(getPostListByArticleCondition)到达Controller层

到这里之后就能看到form参数的来源页面,是通过name来获得参数

1.5、验证漏洞

找到界面http://127.0.0.1/postsearch

添加参数http://127.0.0.1/postsearch?name=1,放到sqlmap去跑

Java代码审计之实战某博客的更多相关文章

  1. 2016-2017-2 《Java程序设计》课程学生博客和代码托管链接

    2016-2017-2 <Java程序设计>课程学生博客和代码托管链接 博客 1552 20155201 李卓雯 20155202 张 旭 20155203 杜可欣 20155204 王 ...

  2. 2015-2016-2 《Java程序设计》项目小组博客

    2015-2016-2 <Java程序设计>项目小组博客 1451 完+美 java项目 守望先疯 JavaGroup 07_10_20_22 FromBottomToTop L.G.Su ...

  3. Vue实战狗尾草博客后台管理系统第七章

    Vue实战狗尾草博客后台管理平台第七章 本章内容为借助模块化来阐述Vuex的进阶使用. 在复杂项目的架构中,对于数据的处理是一个非常头疼的问题.处理不当,不仅对维护增加相当的工作负担,也给开发增加巨大 ...

  4. Vue实战狗尾草博客管理系统第一章

    Vue实战狗尾草博客后台管理系统第一章 这里准备采用的技术栈为:vue全家桶+element-ui 这里因为是后台管理系统,没有做SSR的必要.所以这里就采用前后端分离来昨晚这个项目~ 项目搭建 vu ...

  5. JAVA爬虫挖取CSDN博客文章

    开门见山,看看这个教程的主要任务,就去csdn博客,挖取技术文章,我以<第一行代码–安卓>的作者为例,将他在csdn发表的额博客信息都挖取出来.因为郭神是我在大学期间比较崇拜的对象之一.他 ...

  6. 微博爬虫“免登录”技巧详解及 Java 实现(业余草的博客)

    一.微博一定要登录才能抓取? 目前,对于微博的爬虫,大部分是基于模拟微博账号登录的方式实现的,这种方式如果真的运营起来,实际上是一件非常头疼痛苦的事,你可能每天都过得提心吊胆,生怕新浪爸爸把你的那些账 ...

  7. docker简单入门之使用docker容器部署简单的java web开源项目jpress博客程序

    一.在centos7.3上安装docker 前置条件 x86_64-bit 系统 kernel 3.10+ .检查内核版本,返回的值大于3.10即可 [root@node1 ~]# uname -r ...

  8. Java电话监听器【精品博客】

    模拟拨打电话,接听电话,挂断电话,拨打为空号,等等,这些动作用Java接口监听的方式来完成,主要是为了训练使用接口监听回调: /** * 业务场景一: * [萍萍]--->请输入手机号码进行拨打 ...

  9. Vue实战狗尾草博客管理平台第五章

    本章主要内容如下: 静态资源服务器的配置.学会如何使用静态资源服务器引入静态资源.并给大家推荐一个免费可使用的oss服务器~ 页面的开发由于近期做出的更改较大.就放在下一篇中. 静态资源服务器 静态资 ...

随机推荐

  1. 天人合一物我相融,站点升级渐进式Web应用PWA(Progressive Web Apps)实践

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_216 PWA(Progressive web apps,渐进式 Web 应用)使用现代的 Web API 以及传统的渐进式增强策略 ...

  2. Kettle需求场景复现

    前置说明 遍历文件夹下的文件,读取所有的sheet页(指定的sheet)落库 读取execl文件和csv文件,获得文件中sheet/csv数据,进行落库,并增加字段实现更新: 如果execl中存在两个 ...

  3. 技术分享|闪回在MySQL中的实现和改进

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 3306π 福州站,以下内容是由万里数据库,研发工程师唐洁分享的MySQL闪回方案完整PPT. Enjoy GreatSQ ...

  4. Percona XtraBackup 8.0.26使用说明

    欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 Percona XtraBackup特性说明 Percona Xtrabacku ...

  5. 用lambda表达式和std::function类模板改进泛型抽象工厂设计

  6. Luogu1919 【模板】A*B Problem升级版(FFT)

    简单的\(A*B\) \(Problem\),卡精度卡到想女装 #include <iostream> #include <cstdio> #include <cstri ...

  7. 非常全的一份Python爬虫的Xpath博文

    非常全的一份Python爬虫的Xpath博文 Xpath 是 python 爬虫过程中非常重要的一个用来定位的一种语法. 一.开始使用 首先我们需要得到一个 HTML 源代码,用来模拟爬取网页中的源代 ...

  8. Excel 运算符(二):比较运算符

    比较运算符用于对两个数据进行比较运算,其结果为 TRUE(真)或 FALSE(假). 运算符 含义 实例 结果 = 等于 =2=3 FALSE < 小于 =5<2 FALSE > 大 ...

  9. html弹出二选一窗口,然后根据点击执行对应的js方法

    html弹出二选一窗口,然后根据点击执行对应的js方法 layer.confirm("我是弹出来的字", {btn:['确认','取消']}, function(){ ...方法1 ...

  10. PerfView专题 (第八篇):洞察 C# 内存泄漏之寻找静态变量名和GC模式

    一:背景 这篇我们来聊一下 PerfView 在协助 WinDbg 分析 Dump 过程中的两个超实用技巧,可能会帮助我们快速定位最后的问题,主要有如下两块: 洞察内存泄漏中的静态大集合变量名. 验证 ...