对某博客的代码审计

在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. 2015-2016-2 《Java程序设计》 学生博客及Git@OSC 链接

    2015-2016-2 <Java程序设计> 学生博客及Git@OSC 链接 博客 1451 20145101王闰开 20145102周正一 20145103冯文华 20145104张家明 ...

  2. Java语言课程设计——博客作业教学数据分析系统(201521123107 张翔)

    #Java语言课程设计--博客作业教学数据分析系统(个人博客) 1.团队课程设计博客链接 [博客作业教学数据分析系统(From:网络五条狗)](http://www.cnblogs.com/fanta ...

  3. JAVA课程设计——团队博客

    JAVA课程设计--团队博客 1. 团队名称.团队成员介绍(需要有照片) 团队名称:"小羊吃蓝莓"小游戏 团队成员介绍: 成员 班级 学号 廖怡洁 网络1513 201521123 ...

  4. JAVA课设个人博客--多源数据教学管理系统

    JAVA课设个人博客--多源数据教学管理系统 1.团队课程设计博客链接 https://www.cnblogs.com/hq9-/p/10278470.html 2. 个人负责模块或任务说明 主要模块 ...

  5. 《Java 程序设计》团队博客第十一周(第一次)

    <Java 程序设计>团队博客第十一周(第一次) 团队项目 1.项目内容.目标 项目内容 本组的团队项目准备实现一个有关于大富翁有的游戏程序. 大富翁游戏,以经营权为主要的游戏方式,通过购 ...

  6. java高并发_博客-网址-资料 推荐

    大概说一下自己作为入门学习java高并发的博客地址,很不错在自己的博客里记录一下:如果能有刷到我的博客的骚年,又刚好想了解java高并发,强烈推荐看看 地址:http://www.itsoku.com ...

  7. Java集合 - 明的博客

    "In this world there are only two tragedies. One is not getting what one wants, and the other i ...

  8. JAVA课程设计个人博客 学生成绩管理 201521123023 戴建钊

    1. 团队课程设计博客链接 http://www.cnblogs.com/kawajiang/p/7062407.html 2.个人负责模块或任务说明 我主要负责实现随机生成10万个学生及其姓名.学号 ...

  9. JAVA课程设计个人博客 学生成绩管理 201521123001 张陈东芳

    1. 团队课程设计博客链接 http://www.cnblogs.com/kawajiang/p/7062407.html 2.个人负责模块或任务说明 我主要负责实现学生信息的添加功能.学生成绩的录入 ...

  10. java课程设计团队博客

    java课程设计 本组主题:Calculator(简易计算器) 功能要求:基本实现计算器的功能,可运行加.减.乘.除.求倒数.求平方根.求百分号运算.正负数运算等 一.团队介绍 团队名称:熬夜做不出随 ...

随机推荐

  1. 2022-08-22:给定一个数组arr,长度为n,最多可以删除一个连续子数组, 求剩下的数组,严格连续递增的子数组最大长度。 n <= 10^6。 来自字节。5.6笔试。

    2022-08-22:给定一个数组arr,长度为n,最多可以删除一个连续子数组, 求剩下的数组,严格连续递增的子数组最大长度. n <= 10^6. 来自字节.5.6笔试. 答案2022-08- ...

  2. 2022-04-23:给定一个长度为4的整数数组 cards 。你有 4 张卡片,每张卡片上都包含一个范围在 [1,9] 的数字。您应该使用运算符 [‘+‘, ‘-‘, ‘*‘, ‘/‘] 和括号 ‘

    2022-04-23:给定一个长度为4的整数数组 cards .你有 4 张卡片,每张卡片上都包含一个范围在 [1,9] 的数字.您应该使用运算符 ['+', '-', '*', '/'] 和括号 ' ...

  3. 2022-01-10:路径交叉。给你一个整数数组 distance 。 从 X-Y 平面上的点 (0,0) 开始,先向北移动 distance[0] 米,然后向西移动 distance[1] 米,向南

    2022-01-10:路径交叉.给你一个整数数组 distance . 从 X-Y 平面上的点 (0,0) 开始,先向北移动 distance[0] 米,然后向西移动 distance[1] 米,向南 ...

  4. Github疯传!谷歌师兄的LeetCode刷题笔记开源了!

    有小伙伴私聊我说刚开始刷LeetCode的时候,感到很吃力,刷题效率很低.我以前刷题的时候也遇到这个问题,直到后来看到这个谷歌师兄总结的刷题笔记,发现LeetCode刷题都是套路呀,掌握这些套路之后, ...

  5. python 学习 ---函数(带参数)

    函数式编程最重要的是增强代码的重用性和可读性 1 def 函数名(参数): 2 3 ... 4 函数体 5 ... 函数的定义主要有如下要点: def:表示函数的关键字 函数名:函数的名称,日后根据函 ...

  6. drf多方式登录接口(手机号、邮箱、验证码)登录

    题目 ##### 3 多方式登录接口#### -使用auth的user表扩写 -用户名+密码 -手机号+密码 -邮箱+密码 -签发token逻辑,放在序列化类中写 方式一: serializer.py ...

  7. 【RS】多光谱波段和全色波段的区别

    <p><strong>1.全色波段(Panchromatic Band)</strong></p> 全色图像是单通道的(即单波段灰色影像),其中全色是指 ...

  8. SpringBoot集成支付宝 - 少走弯路就看这篇

    最近在做一个网站,后端采用了SpringBoot,需要集成支付宝进行线上支付,在这个过程中研究了大量支付宝的集成资料,也走了一些弯路,现在总结出来,相信你读完也能轻松集成支付宝支付. 在开始集成支付宝 ...

  9. 【python基础】文件-文件路径

    1.文件路径 我们发现不管是写入还是写出操作,我们提供的都是文件名,其实这里准确说应该是文件路径.当我们简单把文件名传递给open函数时,Python将在当前执行程序的文件所在的目录中查找文件名所代表 ...

  10. 记一次.net加密神器 Eazfuscator.NET 2023.2 最新版 使用尝试

    很多人看到这个Eazfuscator.NET还不知是什么东东... 首先介绍下 什么是 Eazfuscator.NET? Eazfuscator.NET 是用于.NET平台的工业级混淆器. Eazfu ...