本站已运行

攻城狮论坛

作者: 合肥清默
查看: 8576|回复: 94

主题标签Tag

more +今日重磅推荐Recommend No.1

所有IT类厂商认证考试题库下载所有IT类厂商认证考试题库下载

more +随机图赏Gallery

【新盟教育】2023最新华为HCIA全套视频合集【网工基础全覆盖】---国sir公开课合集【新盟教育】2023最新华为HCIA全套视频合集【网工基础全覆盖】---国sir公开课合集
【新盟教育】网工小白必看的!2023最新版华为认证HCIA Datacom零基础全套实战课【新盟教育】网工小白必看的!2023最新版华为认证HCIA Datacom零基础全套实战课
原创_超融合自动化运维工具cvTools原创_超融合自动化运维工具cvTools
重量级~~30多套JAVA就业班全套 视频教程(请尽快下载,链接失效后不补)重量级~~30多套JAVA就业班全套 视频教程(请尽快下载,链接失效后不补)
链接已失效【超过几百G】EVE 国内和国外镜像 全有了 百度群分享链接已失效【超过几百G】EVE 国内和国外镜像 全有了 百度群分享
某linux大佬,积累多年的电子书(约300本)某linux大佬,积累多年的电子书(约300本)
乾颐堂现任明教教主Python完整版乾颐堂现任明教教主Python完整版
乾颐堂 教主技术进化论 2018-2019年 最新31-50期合集视频(各种最新技术杂谈视频)乾颐堂 教主技术进化论 2018-2019年 最新31-50期合集视频(各种最新技术杂谈视频)
Python学习视频 0起点视频 入门到项目实战篇 Python3.5.2视频教程 共847集 能学102天Python学习视频 0起点视频 入门到项目实战篇 Python3.5.2视频教程 共847集 能学102天
约21套Python视频合集 核心基础视频教程(共310G,已压缩)约21套Python视频合集 核心基础视频教程(共310G,已压缩)
最新20180811录制 IT爱好者-清风羽毛 - 网络安全IPSec VPN实验指南视频教程最新20180811录制 IT爱好者-清风羽毛 - 网络安全IPSec VPN实验指南视频教程
最新20180807录制EVE开机自启动虚拟路由器并桥接物理网卡充当思科路由器最新20180807录制EVE开机自启动虚拟路由器并桥接物理网卡充当思科路由器

【清默网络】由一次渗透引发的安全思考

  [复制链接]
查看: 8576|回复: 94
开通VIP 免金币+免回帖+批量下载+无广告
近日对某网站进行了一次简单渗透,让我想起了不久之前发生的一次”小事件”;
" s8 |3 F# J" Z% W1 ]6 `$ }  
* Q. A, q  F3 N1 B 拿出来和大家分享希望能对提高大家的安全开发意识有所帮助" k2 s9 r% F: w8 v. m+ K: q
  
3 g( |" O) R1 e) I3 l/ o2 \ 事件回放:一个页面提供下载功能
3 H4 l" V; L3 E  
7 ?, f2 r6 M3 Q5 @1 y5 Q! k 结果是:程序bug导致下载服务器上的任意文件。% X; H1 O, o7 [) W$ f: i! x. ^
  
, Q3 k7 k8 C- i/ Q2 J) F& d 可能你会觉得下载了也没有用,因为我只开放了80端口,甚至还有负载均衡挡在外面,下载一个密码文件也没什么,但实际这是一个相当危险的问题。
5 q7 \) b- R' _  ) e. v5 Q' W4 _4 f# W- r! q$ a2 Y4 |
以下是一些原理性的假设,其中一些细节是基于实际渗透的。仅供学习和交流,和给大家提个醒。
, ]' n' X2 h% v* O  8 s9 o" T  [: T9 U' k) h4 P
记得当时是这样的,有一个页面提供了活动相关mp3下载功能,结果被一些“细心”的朋友发现了其中的问题,并及时予以通知,这才进行了修补% Q" g8 N' c; H$ S% P
  0 b! i& _4 C9 F4 S" @& E
其实原理很简单也很常见,和当年iis上出的那个目录遍历漏洞是一样的,就是提供下载功能的jsp文件将文件名作为参数传入,类似于:down.jsp?FileName=song.mp3,在浏览器地址栏提交后就能得到song.mp3这个文件了。
6 _/ n: @% |" |  
+ U+ f! r' u" a7 Y* b5 ]& m/ v 接下来,做一下简单的修改,将地址栏的参数改为如下样子:down.jsp?FileName=../../../../../song.mp3
8 w1 ]5 {( X; y3 b- R& C  / p2 i8 J8 m: }: \
由于这个目录下的文件根本不存在,如果程序处理的够好,包住了异常,那么就会返回一个0字节文件,这样看来不会出现问题,但是我们继续修改参数:down.jsp?FileName=../../../../../etc/hosts; n( Q" F, w; c+ N
  
' \$ H& w- k( b& y 猜猜看会怎么样?有两种可能9 y8 i2 x2 J' h$ O& M$ o$ G
  3 @! L& p5 k, ]
1.返回的仍然是空0 P7 S1 s$ F& L
  : n) M% h# h7 X0 y/ ?1 W/ n
原因:8 [+ O& g; }% y/ O$ _! ~8 p
  6 \3 `/ y4 ]% u
a.文件不存在,也就是目录不对,那么需要再次尝试:down.jsp?FileName=../../../../../../etc/hosts;在增加一个“../”,直到找到文件: f/ d6 `; h& J2 w3 m5 d6 J
  ' h1 a' x7 b" J# z6 G" f. U
b.找到了文件,但是没有权限读取,但是很不幸,我见到过的类似问题都是能顺利读取的,而且能读取的远远不止这个文件
1 ~7 M1 r( b2 K6 C/ O  ) D. s- s' W# Y  U; N( P
2.返回了hosts文件( T; y2 G: N7 {1 q+ @2 g
  
# M) h* @5 a0 `2 a8 b/ g1 W bingo,如果顺利返回hosts文件,那么就可以更近一步渗透了。: {: e4 Z$ {  m0 X) j0 {! G$ z% }! [
  5 k, _' Z# n( q# B2 S
可能你会想,就是个hosts么,没什么。
  q9 H( _4 V, i& H3 M6 `  
4 j4 `2 X0 D6 y" ]- Z9 G 好了,下一步,我把地址改为如下内容:down.jsp?FileName=../../../../../etc/gshadow( _! l8 _+ t7 t! P, p* U
  / N! i& k& V7 e: r0 K
于是获得文件,类似如下内容) ]$ L* r3 F  v
  ; T$ s' m" O% q- F: a1 l
bin:x:1:root,bin,daemon7 ?( ?! {( s5 ]
  & O  _6 ~4 V0 c+ @( u3 }3 p
daemon:x:2:root,bin,daemon
1 I0 v* z9 @: L1 v0 n3 T7 o  4 `7 v6 m0 }+ j+ T/ {  r& V. `
sys:x:3:root,bin,adm7 h( p- }5 \4 t4 X7 r
  2 w8 `% p8 k* D4 I
…….; W" J2 `) a& d3 K" P/ {7 A, q' S, T* v
  8 ~; k0 J/ k1 x- S( Y$ W
***:***:/home/dmtsai:/bin/bash. U( a  ]# I. w7 F) }
  
( H! E8 W# H8 s6 Z* S* F 好了,这样我就获得了该系统中所有的用户名,也就是例子中/home/dmtsai:/bin/bash的dmtsai+ U# D  c2 G3 X) I; s$ A
  
/ |( b: I+ j! ^* A) [6 H% x& o- [0 P; ? 当然一个系统中可能会有很多用户,当然也会全部列出来,! t- D) b, _6 e) ^9 G% r  N) r
  - _4 b. a& K$ S8 _( ?) p/ i8 `; [
好了接下来做一件比较恐怖的事情/ O% p8 S0 ]( N8 g1 U" V- {
  7 D8 q. P5 J, |# ?2 O4 ~4 l5 p
也是最核心的,将地址栏改为如下内容:down.jsp?FileName=../../../../../home/dmtsai/.bash_history. C6 H/ l1 x% i
  * a4 Q4 m; r; U* U/ e+ f, X
这下我就等于拿到了这台机器上的命令行历史记录! ?! A" [6 W& _) s, D
  # y: y: I. N/ }, h/ x
类 似于vi,ftp,cd /***,rm ***,等等,甚至是mysql的数据库连接命令,还有一些Python脚本,这些记录全部拿到,因为是web服务器,也就很容易可以拿到你的web目录,以及其中的关键东西,如果用的struts,那么定位到你的web目录,那么好了,struts-config文件有了,web.xml有了,然后数据库配置文件也有了,log配置文件也有了。那么这意味着什么呢,你的整套网站的jsp源文件会被下载,或许这并不能拿到服务器的权限,但是很大程度为黑客提供了一次深度接触我们的机会,这是十分危险的!3 `$ A7 c" }. D0 J- h
  ; J/ U1 }" H; \
接下来就可以分析从服务器上获得的资料,准备进一步渗透了。可能通过对jsp文件的分析,你可以拿到上传的权限,这样会使问题更加恶化。
3 w# n8 F6 H/ b3 [, z    g' r$ h1 m' T4 ^$ G" E6 D0 n
所以在日常开发中,这种文件下载的功能要慎之又慎,有可能一个疏忽就导致你的服务器遭到渗透
+ I" H, [; b# x+ D' P: u  
2 ?$ T  E9 I8 Y/ N9 @3 Y# t 以下是一些总结:, p( w8 T9 n  x5 L. g5 Q! O
  3 C( B& [- P7 @3 [: k' q6 q
1. 在做开发中,如果有下载功能,请不要将客户端提交的文件名直接用来去取文件,这是很大意很危险的行为。建议定义好type类型,然后通过传递type,来取得相应的文件,如:aa对应song1.mp3;bb对应song2.mp3。而且文件所在的根目录最好能固化在程序中,或者写在配置文件中
6 y8 e. j1 p* j0 R( p! o  
9 o/ @: R) Y4 u9 \; `* n/ ?6 W 2.用户提交的数据都是不可信的,需要我们层层筛选,这其中合法性验证很必要,不是简单的数字判断,文件名判断之类的就行了的,至少要考虑两方面,
) M/ t5 K- y( u- C: ]  
1 r- t+ p5 B$ p2 ~2 x a.是否是未经处理就返回给用户(此处问题最近就发生过,还好已经及时修复)
+ m4 o# d+ Y7 d+ ^6 [  / v0 Y4 ^* p" O4 K9 U5 r
b.是否未经处理就将参数传入到逻辑模块去执行了+ g) Z6 H$ `8 {; }8 [7 p
  " P& `/ D% s3 w. A$ m2 x) ]1 D
a点的危害是我们常见的xss,用户提交恶意的代码,结果未做判断就扔回去。
2 n$ b0 P) N! @) x8 t  - W9 V$ D* o5 N, m( |
b 点的危害就无法估量了,这取决于你的代码逻辑,如果它功能够强大,那么黑客获得东西也就越大,损失也就越大。所以对于用户提交的数据要十分谨慎,因为我们的程序不只是要能够运行,还必须要健康的运行。其实完全可以把用户的提交数据看作是定时炸弹,不要犯懒,嫌麻烦,存在侥幸心理,觉得用户可能不会发现,要知道面对几千万的用户,哪怕概率只有千万分之1,那也是恐怖的。. o( h' r- e$ @9 L$ ^/ L
  + R1 C$ c  o" B" I% P
3.即使是只开放80端口,一样可以进行渗透,这时不管有没有防火墙什么的都没有用,因为这是通过正常的访问获得的,也就是说只要程序有bug,那么再强的防御也无济于事,这其实是一种简单的穿透手段,利用程序bug来穿透,获得敏感数据。& A% b* ]/ A7 K5 M4 _3 {
  6 R9 C  v# B2 H5 K6 C, ~  x
5.web服务器启动者的权限问题,如果web服务器的权限很低,那么我什么也拿不到,或者拿到很少的东西。同样如果启动者的权限过高,拿到的文件也就越多,万一从对jsp文件的分析中发现了上传方面的bug,那就真的是不堪设想) P# G/ S% t: d& s% @  L  o9 C2 e, g. u
  
2 H6 G3 Q- c$ r: Z. D 6.要下载的文件最好单独存放,并且以静态方式下载,这样可以将风险降到最低,甚至是0风险
6 M# E/ r2 F) V* s1 G) C  
' M7 `+ Z% R! }, \ 7.还有很多,大家自己根据需要自己理解吧
CCNA考试 官方正规报名 仅需1500元
回复 论坛版权

使用道具 举报

yiza [Lv8 技术精悍] 发表于 2013-10-22 15:05:46 | 显示全部楼层
不错不错,楼主您辛苦了。。。
回复 支持 反对

使用道具 举报

seekus [Lv8 技术精悍] 发表于 2013-10-22 22:20:48 | 显示全部楼层
路过,支持一下啦
回复 支持 反对

使用道具 举报

thanlife [Lv8 技术精悍] 发表于 2013-10-29 10:25:11 | 显示全部楼层
看帖回帖是美德!:lol
回复 支持 反对

使用道具 举报

bele [VIP@钻石] 发表于 2013-11-6 10:58:27 | 显示全部楼层
回复 支持 反对

使用道具 举报

wmlam [Lv8 技术精悍] 发表于 2013-12-3 16:50:46 | 显示全部楼层
我是个凑数的。。。
回复 支持 反对

使用道具 举报

芙英 [Lv8 技术精悍] 发表于 2014-3-24 21:50:24 | 显示全部楼层
帮帮顶顶!!
回复 支持 反对

使用道具 举报

roc8788 [Lv8 技术精悍] 发表于 2014-3-26 16:48:35 | 显示全部楼层
我是来刷分的,嘿嘿
回复 支持 反对

使用道具 举报

当当 [Lv8 技术精悍] 发表于 2014-3-27 09:55:08 | 显示全部楼层
这是什么东东啊
回复 支持 反对

使用道具 举报

gggggs [Lv8 技术精悍] 发表于 2014-3-27 15:27:25 | 显示全部楼层
好好 学习了 确实不错
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|无图浏览|手机版|网站地图|攻城狮论坛

GMT+8, 2026-7-5 14:51 , Processed in 0.106310 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4 © 2001-2013 Comsenz Inc.

Designed by ARTERY.cn