Java代码审计之实战某博客
对某博客的代码审计
在gitee上面找了一个个人博客项目,来进行实战代码审计,主要还是学习为主
技术菜菜,哪里错误希望师傅们指正
1、SQL注入
先了解Java Web中的数据传输流程
id1(Controller.java 处理前台发送的请求)
id1-->id2(Service.java 定义接口_业务逻辑)
id2-->id3(ServiceImpl.java 对接口函数进行实现)
id3-->id4(Mapper.java Mapper接口)
id4-->id5(Mapper.xml 写sql语句查询数据库)
查SQL注入可以从Mapper看起
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代码审计之实战某博客的更多相关文章
- 2016-2017-2 《Java程序设计》课程学生博客和代码托管链接
2016-2017-2 <Java程序设计>课程学生博客和代码托管链接 博客 1552 20155201 李卓雯 20155202 张 旭 20155203 杜可欣 20155204 王 ...
- 2015-2016-2 《Java程序设计》项目小组博客
2015-2016-2 <Java程序设计>项目小组博客 1451 完+美 java项目 守望先疯 JavaGroup 07_10_20_22 FromBottomToTop L.G.Su ...
- Vue实战狗尾草博客后台管理系统第七章
Vue实战狗尾草博客后台管理平台第七章 本章内容为借助模块化来阐述Vuex的进阶使用. 在复杂项目的架构中,对于数据的处理是一个非常头疼的问题.处理不当,不仅对维护增加相当的工作负担,也给开发增加巨大 ...
- Vue实战狗尾草博客管理系统第一章
Vue实战狗尾草博客后台管理系统第一章 这里准备采用的技术栈为:vue全家桶+element-ui 这里因为是后台管理系统,没有做SSR的必要.所以这里就采用前后端分离来昨晚这个项目~ 项目搭建 vu ...
- JAVA爬虫挖取CSDN博客文章
开门见山,看看这个教程的主要任务,就去csdn博客,挖取技术文章,我以<第一行代码–安卓>的作者为例,将他在csdn发表的额博客信息都挖取出来.因为郭神是我在大学期间比较崇拜的对象之一.他 ...
- 微博爬虫“免登录”技巧详解及 Java 实现(业余草的博客)
一.微博一定要登录才能抓取? 目前,对于微博的爬虫,大部分是基于模拟微博账号登录的方式实现的,这种方式如果真的运营起来,实际上是一件非常头疼痛苦的事,你可能每天都过得提心吊胆,生怕新浪爸爸把你的那些账 ...
- docker简单入门之使用docker容器部署简单的java web开源项目jpress博客程序
一.在centos7.3上安装docker 前置条件 x86_64-bit 系统 kernel 3.10+ .检查内核版本,返回的值大于3.10即可 [root@node1 ~]# uname -r ...
- Java电话监听器【精品博客】
模拟拨打电话,接听电话,挂断电话,拨打为空号,等等,这些动作用Java接口监听的方式来完成,主要是为了训练使用接口监听回调: /** * 业务场景一: * [萍萍]--->请输入手机号码进行拨打 ...
- Vue实战狗尾草博客管理平台第五章
本章主要内容如下: 静态资源服务器的配置.学会如何使用静态资源服务器引入静态资源.并给大家推荐一个免费可使用的oss服务器~ 页面的开发由于近期做出的更改较大.就放在下一篇中. 静态资源服务器 静态资 ...
随机推荐
- 汽车锂电池行业为啥会选择钡铼BL200系列Profinet分布式IO
近年来,全球新能源汽车的蓬勃发展促进了锂电池行业的发展.随着锂电池标准化程度的提高,电池和模块规格的标准化是未来的发展趋势,也促进了自动化模块生产线的发展. 锂电池模块生产线通过涂胶-电池堆叠-组装- ...
- Thymeleaf是什么?该如何使用。
先了解Thymeleaf是什么 1. Thymeleaf 简介 Thymeleaf 是新⼀代 Java 模板引擎,与 Velocity.FreeMarker 等传统 Java 模板引擎不同,Thyme ...
- Python 工匠: 异常处理的三个好习惯
前言 这是 "Python 工匠"系列的第 6 篇文章.(点击原文链接,可查看系列其他文章) 如果你用 Python 编程,那么你就无法避开异常,因为异常在这门语言里无处不在.打个 ...
- java-数组排序之冒泡排序(经典排序)
public class BubbleSort { public static void main(String[] args) { /*冒泡排序不一定是用时最短的 * 1)声明整型数组arr,包含1 ...
- java数组---数组的使用(打印,求和,最大值)
public static void main(String[] args) { int[] arrays={1,2,3,4,5}; //打印该数组 for (int i = 0; i < ar ...
- 说说 JSON 格式的弊端与解决方法
JSON 格式是目前最流行的数据交互格式,广泛应用于前后端分离的系统.但也有一些场合不适合使用 JSON 格式. 1 JSON 格式弊端 有这样的一个需求:希望把客户端的日志上传到服务器存储起来.原先 ...
- 【读书笔记】C#高级编程 第十章 集合
(一)概述 数组的大小是固定的.如果元素个数是动态的,就应使用集合类. List<T>是与数组相当的集合类.还有其它类型的集合:队列.栈.链表.字典和集. (二)列表 1.创建列表 调用默 ...
- 对表白墙js文件的解释
index.js 1 Page({ 2 3 /** 4 * 页面的初始数据 5 */ 6 data: { 7 xcx_appid:"", 8 }, 9 HuoquDaohangLi ...
- 基于 vite 创建 vue3 全家桶项目(vite + vue3 + tsx + pinia)
vite 最近非常火,它是 vue 作者尤大神发布前端构建工具,底层基于 Rollup,无论是启动速度还是热加载速度都非常快.vite 随 vue3 正式版一起发布,刚开始的时候与 vue 绑定在一起 ...
- 无线WIFI连接
家里的无线网络覆盖一直不全, 最近想改善一下.买了一个mercury的小路由器MW156RM 其实,我还是不理解WDS, repeater, bridge模式有什么区别. 目标就是实现最少的改动,保持 ...