代码分析
source/include/spacecp/spacecp_blog.php
提交xss $_POST数据,然后把它转交给(blog_post 关键函数) 处理
subject 的表单输入框,也就是“日志标题”。。没有进行任何安全过滤
跟踪 blog_post
程序的执行流程跳转到了 source/function/function_blog.php
调用了 censor() 函数,只会匹配和替换屏蔽脏话、广告词,不会过滤,没有过滤XSS
正确的处理方法 dhtmlspecialchars *(不知道为什么没有写要写个censor)
xss写入数据库的数组 赋值给了 $blogarr 中没有过滤
执行数据库 函数调用分析: 这里调用了 C::t('home_blog')->insert()。这个方法会接收 $blogarr 数组,并生成一条SQL INSERT 语句,将数据写入 pre_home_blog 数据表。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
source/include/spacecp/spacecp_blog.php
提交xss $_POST数据,然后把它转交给(blog_post 关键函数) 处理
subject 的表单输入框,也就是“日志标题”。。没有进行任何安全过滤
跟踪 blog_post
程序的执行流程跳转到了 source/function/function_blog.php
调用了 censor() 函数,只会匹配和替换屏蔽脏话、广告词,不会过滤,没有过滤XSS
正确的处理方法 dhtmlspecialchars *(不知道为什么没有写要写个censor)
xss写入数据库的数组 赋值给了 $blogarr 中没有过滤
执行数据库 函数调用分析: 这里调用了 C::t('home_blog')->insert()。这个方法会接收 $blogarr 数组,并生成一条SQL INSERT 语句,将数据写入 pre_home_blog 数据表。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
漏洞代码:\src\main\java\com\pointlion\mvc\admin\oa\workflow\model\ModelController.java
前端传参name、key这两个参数。
跟进这个WorkFlowUtil.ifHaveThisFlow(key)这个方法。
sql语句直接拼接。
根据jfinalOA全局路由配置:
\src\main\java\com\pointlion\config\routes\OARoutes.java
所以url为:http://localhost:8089/JFinalOA_war/admin/oa/model/save?name=1&key=1
直接构造的数据包。
丢进sqlmap
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
前端传参name、key这两个参数。
跟进这个WorkFlowUtil.ifHaveThisFlow(key)这个方法。
sql语句直接拼接。
根据jfinalOA全局路由配置:
\src\main\java\com\pointlion\config\routes\OARoutes.java
所以url为:http://localhost:8089/JFinalOA_war/admin/oa/model/save?name=1&key=1
直接构造的数据包。
丢进sqlmap
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
漏洞代码:\src\main\java\com\pointlion\mvc\admin\sys\dct\SysDctController.java
这两参数都有SQL注入,跟进getPage()方法
直接拼接sql语句。这里存在sql注入
根据路由配置,\src\main\java\com\pointlion\config\routes\SysRoutes.java
可构造出url:http://127.0.0.1:8089/JFinalOA_war/admin/sys/dct/listData?pageNumber=1&pageSize=10&groupId=87cc10818c7645918246a81f33b69036&_=1631700191765
直接把数据包丢进sqlmap,可以跑出来,就不贴图了。
前面两个都是后台的注入。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
这两参数都有SQL注入,跟进getPage()方法
直接拼接sql语句。这里存在sql注入
根据路由配置,\src\main\java\com\pointlion\config\routes\SysRoutes.java
可构造出url:http://127.0.0.1:8089/JFinalOA_war/admin/sys/dct/listData?pageNumber=1&pageSize=10&groupId=87cc10818c7645918246a81f33b69036&_=1631700191765
直接把数据包丢进sqlmap,可以跑出来,就不贴图了。
前面两个都是后台的注入。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
漏洞代码:\src\main\java\com\pointlion\mvc\mobile\login\MobileLoginController.java
\src\main\java\com\pointlion\mvc\admin\sys\login\LoginController.java
这两处代码都是有注入的,一个手机端的登录,一个是pc端的登录。手机端登录可能是没有写完,没有前台页面,没有验证码,可以直接丢进sqlmap。
1、手机端
首先先看手机端的代码,MobileLoginController.java
传入两个参数,跟进这个方法
直接拼接sql,造成sql注入。
2、PC端
LoginController.java
可以看出这里是使用的shiro,看看shiro的数据操作。
根据shiro配置文件,可以看到是这个Java文件
跟进这个getByUsername()方法
直接拼接sql语句,造成SQL注入。但这里有验证码。所以不能使用sqlmap了。
只能手工测试。或者使用直接构造sql语句登录
从源码中可以看到,使用的是加密字符写入数据库,写一个测试的类,类获取一个加密的密码。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
\src\main\java\com\pointlion\mvc\admin\sys\login\LoginController.java
这两处代码都是有注入的,一个手机端的登录,一个是pc端的登录。手机端登录可能是没有写完,没有前台页面,没有验证码,可以直接丢进sqlmap。
1、手机端
首先先看手机端的代码,MobileLoginController.java
传入两个参数,跟进这个方法
直接拼接sql,造成sql注入。
2、PC端
LoginController.java
可以看出这里是使用的shiro,看看shiro的数据操作。
根据shiro配置文件,可以看到是这个Java文件
跟进这个getByUsername()方法
直接拼接sql语句,造成SQL注入。但这里有验证码。所以不能使用sqlmap了。
只能手工测试。或者使用直接构造sql语句登录
从源码中可以看到,使用的是加密字符写入数据库,写一个测试的类,类获取一个加密的密码。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
起因是朋友问fanwei o2o源码搭建的站后台能不能拿shell,于是我进后台进行了一番尝试,各功能点没什么进展,好多地方过滤了,上传也是白名单,编辑器的1day修了,万幸的是有个拿不到shell但是可以执行sql语句的功能点,再通过fofa提取特征,在其他站点下拿到一份残缺的源码(Git_Extract工具拖出来的源码文件名是中文会乱码,换用GitHack解决)。
这次拿到了三份不同版本的源码(v1.x,v3.x,v6.5),真实环境的站一个是朋友发的那个v3.x的站一个是fofa找的v6.9的站。
尝试Shell写到慢日志绕过priv,需要绝对路径,我是这么找的:
1.写python脚本遍历源码下的所有路径和文件后burp suite访问所有文件甚至是构造畸形参数以尝试出现报错页面。
2.在上传iconv压缩包处上传畸形压缩包制造报错找到了绝对路径
可惜sql语句执行错误,没有写入权限,高版本的话对这里则是做了过滤,替换了反斜杠。
二、审计源码
通过前期翻sql表的信息收集可以知道任务计划表的data字段是序列化后存储在数据库的表里的,所以拿到源码先看了任务计划处功能点的“立即执行计划任务”的操作,使用
“立即执行计划任务”操作会将yanhuo_schedule_list表的data字段值反序列化后再调用类自定义的exec函数,所以我就想通过updata语句修改成我们需要的payload然后流入exec函数,而残缺的源码里正好缺了这部分找不到exec()函数里面咋写的。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
这次拿到了三份不同版本的源码(v1.x,v3.x,v6.5),真实环境的站一个是朋友发的那个v3.x的站一个是fofa找的v6.9的站。
尝试Shell写到慢日志绕过priv,需要绝对路径,我是这么找的:
1.写python脚本遍历源码下的所有路径和文件后burp suite访问所有文件甚至是构造畸形参数以尝试出现报错页面。
2.在上传iconv压缩包处上传畸形压缩包制造报错找到了绝对路径
可惜sql语句执行错误,没有写入权限,高版本的话对这里则是做了过滤,替换了反斜杠。
二、审计源码
通过前期翻sql表的信息收集可以知道任务计划表的data字段是序列化后存储在数据库的表里的,所以拿到源码先看了任务计划处功能点的“立即执行计划任务”的操作,使用
“立即执行计划任务”操作会将yanhuo_schedule_list表的data字段值反序列化后再调用类自定义的exec函数,所以我就想通过updata语句修改成我们需要的payload然后流入exec函数,而残缺的源码里正好缺了这部分找不到exec()函数里面咋写的。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
通达OA v11.7 在线用户登录漏洞
访问漏洞页面获取phpsession
可以看到我们已经获取到了phpsession,这个时候我们就可以访问他的后台页面了,但是如果页面显示RELOGIN说明存在漏洞但是管理员现在不在线,所以需要等他在线。
这里需要注意:我们要添加一个路径为系统目录后面跟上webroot,但是webroot会被过滤,但是他没有检查大小写,所以我们改为Webroot就可以轻松绕过。
这里唯一需要注意的是我们需要将发布范围里添加一个系统管理员,这样子才可以,路径的话呢还是webroot那个路径。
然后我们添加一个文件,也就是我们的shell
这里需要注意的是,我们需要将我们的木马改为jpg后缀的,要不路径无法查看。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke
访问漏洞页面获取phpsession
可以看到我们已经获取到了phpsession,这个时候我们就可以访问他的后台页面了,但是如果页面显示RELOGIN说明存在漏洞但是管理员现在不在线,所以需要等他在线。
这里需要注意:我们要添加一个路径为系统目录后面跟上webroot,但是webroot会被过滤,但是他没有检查大小写,所以我们改为Webroot就可以轻松绕过。
这里唯一需要注意的是我们需要将发布范围里添加一个系统管理员,这样子才可以,路径的话呢还是webroot那个路径。
然后我们添加一个文件,也就是我们的shell
这里需要注意的是,我们需要将我们的木马改为jpg后缀的,要不路径无法查看。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我 @MoA_Ke