对某博客的代码审计

在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-04-19:A*算法, 过程和Dijskra高度相处, 有到终点的预估函数, 只要预估值<=客观上最优距离,就是对的。 预估函数是一种吸引力: 1)合适的吸引力可以提升算法的速度; 2)吸引

    2022-04-19:A*算法, 过程和Dijskra高度相处, 有到终点的预估函数, 只要预估值<=客观上最优距离,就是对的. 预估函数是一种吸引力: 1)合适的吸引力可以提升算法的速度; 2 ...

  2. Django-5:前端模板路径设定TEMPLATES DIRS和调用

    前端模板路径设定:'DIRS': [BASE_DIR / 'templates'] TEMPLATES = [ { 'BACKEND': 'django.template.backends.djang ...

  3. HINT: Add or change a related_name argument to the definition for 'usersApp.

    错误原因是你的项目使用的不是Django自带的用户表,采用的自定义的用户表,这个时候需要在settings.py里面进行指定. AUTH_USER_MODEL = 'usersApp.UserProf ...

  4. 2015年蓝桥杯C/C++大学B组省赛真题(星系炸弹)

    题目描述: 在X星系的广袤空间中漂浮着许多X星人造"炸弹",用来作为宇宙中的路标. 每个炸弹都可以设定多少天之后爆炸. 比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在 ...

  5. 2013年蓝桥杯C/C++大学B组省赛真题(翻硬币)

    题目描述: 明正在玩一个"翻硬币"的游戏. 桌上放着排成一排的若干硬币.我们用 * 表示正面,用 o 表示反面(是小写字母,不是零). 比如,可能情形是:**oo***oooo 如 ...

  6. Python基础 - 输入和输出

    输出   Python提供了 print() 内置函数完成输出 1 print("你好") 2 3 4 # 你好 n = "你好" print(n) # 你好 ...

  7. 代码随想录算法训练营Day55 动态规划

    代码随想录算法训练营 代码随想录算法训练营Day55 动态规划| 392.判断子序列 115.不同的子序 392.判断子序列 题目链接:392.判断子序列 给定字符串 s 和 t ,判断 s 是否为 ...

  8. 代码随想录算法训练营Day5 数组、链表复习

    数组部分 数组最重要的思维方式是双指针的使用. 快慢指针 在进行元素移除和元素操作时会使用两个for循环嵌套,此时时间复杂度为O(n²).在for循环中通过双指针(快慢指针)的使用可以使时间复杂度将为 ...

  9. SpringBoot连接Redis失败报错:Unable to connect to Redis; (小白篇)

    学习redis一段时间了,现在开始使用springboot整合redis,实现Java与redis数据库的连接与一系列的使用. 但刚开始就给我来了个下马威,直接寄,连接不上redis,在swagger ...

  10. Redis系列15:使用Stream实现消息队列(精讲)

    Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 Redis系列4:高可用之Sentinel(哨兵模式) Redis系列5: ...