| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -68,11 +68,11 @@ https://github.com/cn-panda/JavaCodeAudit | |||
| 68 | 68 | ||
| 69 | 69 | 修改连接数据库的账号密码: | |
| 70 | 70 | ||
| 71 | -  | ||
| 71 | +  | ||
| 72 | 72 | ||
| 73 | 73 | ||
| 74 | 74 | ||
| 75 | -  | ||
| 75 | +  | ||
| 76 | 76 | ||
| 77 | 77 | 项目是一个简单的查询用户信息的实现,在 servlet 层接受到请求后,调`UserInfoServiceImpl`,`UserInfoServiceImpl`在调用`UserInfoDaoImpl`,`UserInfoDaoImpl`去操作数据库,然后封装 `UserInfo` 对象,再把` UserInfo` 对象返回给` UserInfoService`,最后 service 层再返回给 servlet 层,最终把查询的内容显示到` info.jsp `页面。 | |
| 78 | 78 | ||
@@ -118,13 +118,11 @@ public UserInfo UserInfoFoundDao(String id){ | |||
| 118 | 118 | ||
| 119 | 119 | 可以看到在 sql 语句中,存在着拼接的String类型变量`id`,且没有进行任何的过滤处理,直接带入执行。这也就导致了 SQL 注入,如下图,带入参数`and 1=1`: | |
| 120 | 120 | ||
| 121 | -  | ||
| 121 | +  | ||
| 122 | 122 | ||
| 123 | 123 | 监视 MySQL 的执行记录,如下图所示: | |
| 124 | 124 | ||
| 125 | -  | ||
| 126 | - | ||
| 127 | - | ||
| 125 | +  | ||
| 128 | 126 | ||
| 129 | 127 | 完整的把我们带入的参数给传了进去。 | |
| 130 | 128 | ||
@@ -134,11 +132,11 @@ public UserInfo UserInfoFoundDao(String id){ | |||
| 134 | 132 | id=2 union select 1,2,3,group_concat(username),group_concat(password) from admin-- | |
| 135 | 133 | ``` | |
| 136 | 134 | ||
| 137 | -  | ||
| 135 | +  | ||
| 138 | 136 | ||
| 139 | 137 | MySQL 执行记录如下: | |
| 140 | 138 | ||
| 141 | -  | ||
| 139 | +  | ||
| 142 | 140 | ||
| 143 | 141 | ## 0x03 修复方案 | |
| 144 | 142 | ||
@@ -280,73 +278,73 @@ https://gitee.com/oufu/ofcms/releases | |||
| 280 | 278 | ||
| 281 | 279 | 然后打开 idea,点击`import Project`,选择` Import project from external model`中的 Maven | |
| 282 | 280 | ||
| 283 | -  | ||
| 281 | +  | ||
| 284 | 282 | ||
| 285 | 283 | ||
| 286 | 284 | ||
| 287 | 285 | 然后一路默认 | |
| 288 | 286 | ||
| 289 | -  | ||
| 287 | +  | ||
| 290 | 288 | ||
| 291 | -  | ||
| 289 | +  | ||
| 292 | 290 | ||
| 293 | 291 |  | |
| 294 | 292 | ||
| 295 | -  | ||
| 293 | +  | ||
| 296 | 294 | ||
| 297 | 295 | ||
| 298 | 296 | ||
| 299 | 297 | 然后在`ofcms-admin/src/main/resources/dev/conf/`文件夹下打开`db.properties`,修改数据的账号密码 | |
| 300 | 298 | ||
| 301 | -  | ||
| 299 | +  | ||
| 302 | 300 | ||
| 303 | 301 | 然后修改根目录下的 `pom.xml`,搜索 `mysql`,然后修改成自己机器上的装的版本,最后点击` import changes` | |
| 304 | 302 | ||
| 305 | -  | ||
| 303 | +  | ||
| 306 | 304 | ||
| 307 | 305 | ||
| 308 | 306 | ||
| 309 | 307 | 然后下载需要的 jar 包资源: | |
| 310 | 308 | ||
| 311 | -  | ||
| 309 | +  | ||
| 312 | 310 | ||
| 313 | 311 | 配置Tomcat 服务,点击 run-->edit configurations | |
| 314 | 312 | ||
| 315 | -  | ||
| 313 | +  | ||
| 316 | 314 | ||
| 317 | -  | ||
| 315 | +  | ||
| 318 | 316 | ||
| 319 | 317 | 然后选择 Tomcat 的安装目录: | |
| 320 | 318 | ||
| 321 | -  | ||
| 319 | +  | ||
| 322 | 320 | ||
| 323 | 321 | 端口按照本地情况修改: | |
| 324 | 322 | ||
| 325 | -  | ||
| 323 | +  | ||
| 326 | 324 | ||
| 327 | 325 | 然后配置 Deployment | |
| 328 | 326 | ||
| 329 | -  | ||
| 327 | +  | ||
| 330 | 328 | ||
| 331 | 329 | 选择 ofcms-admin:war | |
| 332 | 330 | ||
| 333 | -  | ||
| 331 | +  | ||
| 334 | 332 | ||
| 335 | 333 | 修改名字为`/ofcms-admin` | |
| 336 | 334 | ||
| 337 | -  | ||
| 335 | +  | ||
| 336 | + | ||
| 337 | +  | ||
| 338 | 338 | ||
| 339 | 339 | 最后打开 MySQL,创建一个名为 ofcms 的数据库,导入`fcms/doc/sql`下的 sql 文件即可。 | |
| 340 | 340 | ||
| 341 | 341 | 然后启动项目 | |
| 342 | 342 | ||
| 343 | -  | ||
| 343 | +  | ||
| 344 | 344 | ||
| 345 | 345 | 即可访问该项目: | |
| 346 | 346 | ||
| 347 | -  | ||
| 348 | - | ||
| 349 | - | ||
| 347 | +  | ||
| 350 | 348 | ||
| 351 | 349 | 站点地址:http://localhost:8080/ofcms-admin/ | |
| 352 | 350 | ||
@@ -381,7 +379,7 @@ public void create() { | |||
| 381 | 379 | ||
| 382 | 380 | 在后台中找到该段代码对应的功能: | |
| 383 | 381 | ||
| 384 | -  | ||
| 382 | +  | ||
| 385 | 383 | ||
| 386 | 384 | 抓包传入一句测试的语句: | |
| 387 | 385 | ||
@@ -390,11 +388,11 @@ update of_cms_link set link_name='panda' where link_id = 4 | |||
| 390 | 388 | ||
| 391 | 389 | ``` | |
| 392 | 390 | ||
| 393 | -  | ||
| 391 | +  | ||
| 394 | 392 | ||
| 395 | 393 | 查看 SQL 执行记录: | |
| 396 | 394 | ||
| 397 | -  | ||
| 395 | +  | ||
| 398 | 396 | ||
| 399 | 397 | 完完全全的可以控制 update 型的 SQL 注入语句,因此可以利用以下语句进行注入: | |
| 400 | 398 | ||
@@ -403,7 +401,7 @@ update of_cms_link set link_name=updatexml(1,concat(0x7e,(user())),0) where link | |||
| 403 | 401 | ||
| 404 | 402 | ``` | |
| 405 | 403 | ||
| 406 | -  | ||
| 404 | +  | ||
| 407 | 405 | ||
| 408 | 406 | ### 4、修复方案 | |
| 409 | 407 | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments