记一次因库网校代码审计
一.项目源码
因库网校官网已经公开了源码,也有安装教程,如有任何问题,欢迎随时联系我
官网地址:https://www.inxedu.com/index
二.测试环境
-
JDK 1.8
-
Tomcat 7
-
Mysql 5.7
-
maven 3.6
-
IntelliJ IDEA 2019.03
三.1 横向越权漏洞
1.1可能有越权漏洞的代码
这个接口更改用户信息前端传过来的请求好像一点验证都没有,点进业务层的updateUser()方法看看
看看他的xml中sql是怎么写的
从controller看到dao,它对前端发过来的user数据没有任何验证,所以极有可能存在横向越权漏洞
1.2漏洞验证
浏览器访问http://127.0.0.1:81/uc/updateUser?userId=3&userName=1
自动重定向到首页,所以估计有类似拦截器类的配置,idea中crtrl+shift+r,搜索Intercept,果然有
根据拦截器拦截后的操作可以看出,如果用户未登录就会跳转到首页,所以需要登录,
打开edu_user表,密码是md5加密
登录id为1的用户,访问http://127.0.0.1:81/uc/updateUser?userId=3&userName=1,查看数据库,发现id为3的用户USER_NAME成功被修改
用户id为1的用户却能修改id为3的用户信息,所以的确存在横向越权
1.3修复建议
用户id这种敏感数据最好不要信任前端传过来的数据,有必要验证一下传过来的id是否是登录者的id
2.sql注入
2.1可能有sql注入的代码
${}虽然用()括起来了,但是有可能还是能注入,看看其他层如何写的
业务层
controller层
一点验证都没有,这一定是个实习生写的代码,注入!注入!注入!
2.2漏洞验证
前端访问 http://127.0.0.1:81/admin/letter/delsystem?ids=1
跳回到管理员登录页面,这个请求需要登录,而很明显我们的注入是update的,一般没有回显,所以可以用sqlMap的cookie注入
打开sys_user表,密码是md5加密,登录
浏览器查看cookie,管理员登录只添加了一个cookie
键为inxedulogin_sys_user_
值为inxedulogin_sys_user_+管理员id
打开sqlmap
构建cookie注入命令
sqlmap.py -u "http://127.0.0.1:81/admin/letter/delsystem?ids=1" --cookie "inxedulogin_sys_user_=inxedulogin_sys_user_1" -D demo_inxedu_v2_0_open -T sys_user -C "LOGIN_NAME,LOGIN_PWD,USER_NAME" --dump --level 2
成功暴库
不过使用sqlmap要注意,访问过于频繁,后端控制台打印了很多日志
2.3修复建议
不到万不得已不要用${},因为他可以拼接字段,没有预编译,用#{}
由于业务需要不得不用#{}时,务必要验证前端传过来数据的合法性
本文来自博客园,作者:lzstar-A2,转载请注明原文链接:https://www.cnblogs.com/lzstar/p/15399235.html
作 者:lzstar-A2
出 处:https://www.cnblogs.com/lzstar/
关于作者:一名java转安全的在校大学生
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!
欢迎大家关注安全学习交流群菜鸟联盟(IThonest),如果您觉得文章对您有很大的帮助,您可以考虑赏博主一杯可乐以资鼓励,您的肯定将是我最大的动力。thx.
![](https://images.cnblogs.com/cnblogs_com/blogs/710948/galleries/2044356/o_211013172516wzb.png)
菜鸟联盟(IThonest),一个可能会有故事的qq群,欢迎大家来这里讨论,共同进步,不断学习才能不断进步。扫下面的二维码或者收藏下面的二维码关注吧(长按下面的二维码图片、并选择识别图中的二维码),个人QQ和微信的二维码也已给出,扫描下面👇的二维码一起来讨论吧!!!
![](https://images.cnblogs.com/cnblogs_com/blogs/710948/galleries/2044054/o_211012172852jl.png)