数据库
1、创建数据库
CREATE DATABASE Sales
ON
(NAME=Sales_dat,
FILENAME=’C:\DataBase\salesdat.mdf’,
SIZE=10000KB,
MAXSIZE=500000KB,
FILEGROWTH=5%)
LOG ON
(NAME=’Sales_log’,
FILENAME=’C:\DataBase\saleslog.ldf’,
SIZE=5,
MAXSIZE=25,
FILEGROWTH=5)
2、修改数据库(更改数据库名)
ALTER DATABASE Sales
MODIFY NAME=NewSales
或
EXEC sp_renamedb ‘Sales’,’NewSales’
3、向数据库添加(日志)文件
ALTER DATABASE Sales
ADD (LOG)FILE
(NAME=Sales_dat2,
FILENAME=’C:\Program File\Data\Sales2.(ldf)ndf’, SIZE=5,
MAXSIZE=100,
FILEGROWTH=5)
4、在数据库中删除文件
ALTER DATABASE Sales
REMOVE FILE Sales2_dat
5、更改数据库文件
ALTER DATABASE Sales
MODIFY FILE
(NAME=SalesGIF_dat,
SIZE=20)
6、删除数据库
DROP DATABASE Sales,…..、
表
1、创建表
USE Sales
GO
CREATE TABLE employee
(employee_id char(4) NOT NULL,
employee_name char(8) NOT NULL,
sex char(2) NOT NULL,
birth_char(2) NOT NULL
)
2、为表指定文件组
CREATE TABLE Sales.dbo.supplier
(supplier_id int identity(1,1) NOT NULL,
Supplier_name varchar(50) NOT NULL,
Linkman_name varchar(8) NOT NULL,
)ON [PRIMARY]
3、更改表,添加新列,然后删除此列
ALTER TABLE employee
ADD email varchar(20) NULL
GO
Sp_help employee //查看
ALTER TABLE employee
DROP COLUMN email
GO
Sp_help employe
4、更改表列的内容
ALTER TABLE employee
ALTER COLUMN address varchar(150) NOT NULL //把address改为varchar类型且不为空
5、删除表
USE Sales
GO
DROP TABLE employee
6、向表中插入数据
INSERT Sales.dbo.Supplier
(supplier_id,supplier_name,linkman_name,address,telephone)
V ALUES (‘S001’,’华科电子有限科技公司’,’施彬彬’,’朝阳路’,’2434234’) SET IDENTITY_INSERT Sales.dbo.Customer ON
V ALUES(‘-100’,’’,’’,’’) //即可对表示符列更改
7、更改表中数据
UPDATE Customer
SET linkman_name=’佚名’,address=NULL,telephone=’’
WHERE supplier_id=2
8、删除数据
USE Sales
GO
DELETE Customer //将表中所有行删除
TRUNCATE TABLE customer //清空表中的所有数据,并将标识置为种子
数据查询
1、查询并统计、汇总
SELECT department_id, wages from employee
WHERE department_id=’D0001’ ORDER BY department_id COMPUT E sum(wages) 2、单值嵌套查询
SELECT employee FROM employee
WHERE department_id=(SELECT department_id
FROM department
WHERE department_name=’市场部’)
3、多值嵌套查询
SELECT employee_id,wages FROM employee
WHERE department_id=’D0001’AND wages>ANY
(SELECT wages FROM employee
WHERE department_id=’D002’)
3、连接查询
(1) 内链接
SELECT *
FROM department INNER JOIN employee.department_id=department_id
(2)、外连接(不符合条件的用空表示(左,左表))
SELECT a.employee_id,a.employee_name,b.goods_id,b.order_num,b.send_date FROM employee a LEFT(RIGHT、FULL) OUTER JOIN
Sell_order b ON a.employee_id = b.employee_id
(3)、交叉连接
SELECT a.employee_id,a.employee_name,b.goods_id,b.order_num,b.send_date FROM employee a CROSS JOIN
Sell_order b
索引
1、创建非聚集索引
CREATE NONCLUSTERED INDEX name_idx ON employee(employee_name)
2、查看索引
USE Sales
GO
EXEC sp_helpindex employee
GO
3、编辑索引
USE Sales
GO
EXEC sp_rename ‘employee.employee_index_1’,’employee.index_id’,’index’
4、删除索引
USE Sales
IF EXISTS(SELECT name FROM sysindexes
WHERE name=’employee_index_2’)
DORP INDEX employee.employee_index_2
视图
1、创建视图
CREATE VIEW sell_view
AS
SELECT employee.employee_name, employee.employee_id,sell_order.order_num, Sell_order.discount,goods.goods_name,goods.unit_price
FROM employee INNER JOIN sell_order ON
Employee.employee_id=sell_order.employee_id INNER JOIN
Goods ON sell_order.goods_id = goods.goods_id
2、删除视图
USE Sales
IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.V AEWS WHERE TABLE_NAME=’view1’)
DORP VIEW view1
3、使用系统存储过程查看视图
Sp_helptext v_employee_department
4、使用存储过程重命名视图
Sp_rename v_employee_department,view_e_d
5、通过视图检索表数据
SELECT goods_name FROM sell_view WHERE employee_name=’前大力’ORDER BY order_date
6、通过视图添加表数据
INSERT INTO goods_view
V ALUES (‘G0008’,’DVD’,’P002’,343)
7、通过视图修改表数据
UPDATE goods_view
SET classification_id=’P004’
8、通过视图删除表数据
DELETE FROM goods_view
WHERE goods_name LIKE Canon%
规则
1、创建规则
CREATE RULE hire_rule
AS @hire_date>=’1989-01-01’and @hire_data<=getdate();
2、用系统存储过程查看规则
EXECUTE sp_helptext hire_data_rule
3、规则的绑定与松绑
EXEC sp_bindrule hire_date_rule,’empoyee.hire_date’//绑定EXEC sp_unbindrule’employee.hire_date’
4、删除规则
DORP RULE sex_rule,hire_date_rule
默认值
1、创建默认值
CREATE DEFAULT birthday_defa
AS getday()
2、查看默认值
EXEC sp_helptext today_defa
3、默认值的绑定与松绑同rule
4、删除默认值
DROP DEFAULT birthday_defa
主键约束
CREATE TABLE Sales.dbo.customer
(customer_id bigint NOT NULL
IDENTITY(0,1) PRIMARY KEY,
Linkman_name varchar(50) NOT NULL
CONSTRAINT l_linkman_name UNIQUE NONCLUSTERED )
CREATE TABLE employees
(emp_id char(8),
Emp_name char(10) NOT NULL
DEFAULT (‘科大’),
Emp_cardid char(18),
Emp_count int ,
CONSTRAINT pk_emp_id PRIMARY KEY(emp_id), CONSTRAINT uk_emp_cardid UNIQUE (emp_cardid) CONSTRAINT chk_emp_count CHECK(emp_count >=10)
)
MySQL 数据库常用命令简单超级实用版 1、MySQL常用命令 create database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删除数据库,不提醒 show tables; 显示表 describe tablename; 表的详细描述 select 中加上distinct去除重复字段 mysqladmin drop databasename 删除数据库前,有提示。 显示当前mysql版本和当前日期 select version(),current_date; 2、修改mysql中root的密码: shell>mysql -u root -p mysql> update user set password=password(”xueok654123″) where user='root'; mysql> flush privileges //刷新数据库 mysql>use dbname;打开数据库: mysql>show databases; 显示所有数据库 mysql>show tables; 显示数据库mysql中所有的表:先use mysql;然后 mysql>describe user; 显示表mysql数据库中user表的列信息); 3、grant 创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令some thing做这个 mysql> grant all privileges on *.* to user@localhost identified by 'something' with 增加新用户
SQLSERVER数据库操作 ******操作前,请确定SQL的服务已经开启******** 一:登录进入sql数据库 1、开始---所有程序---Microsoft SQL Server 2005---SQL Server Management Studio Express 2、此时出现“连接到服务器”的对话框, “服务器名称”设置为SQL数据库所在机器的IP地址 “身份验证”设置为SQL Server身份验证或者Windows 身份验证 填写登录名和密码后,点击“连接”按钮,即可进入到SQL数据库操作界面。 二:新建数据库 登录进去后,右击“数据库”,选择—“新建数据库” 设置数据库名称,在下面的选项卡中还可以设置数据库的初始大小,自动增长,路径。 点击确定,一个数据库就建好了。 三:如何备份的数据库文件。 登录进入后,右击相应的需要备份数据库----选择“任务” 目标下的备份到,点击“添加”按钮可以设置备份数据库保存的路径。 四:如何还原备份的数据库文件。(以本地机器为例子) 1、设置服务器名称,点击右边的下拉框的三角,选择“浏览更多…”。 此时出现查找服务器对话框,选择“本地服务器”---点开“数据库引擎”前面 的三角---选中出现的服务器名称—确定。 (注:可以在“网络服务器”选项卡中设置网络服务器) 2、设置身份验证,选择为“windows身份验证” 3、点击连接按钮,进入数据库管理页面 4、右击“数据库”,选择“还原数据库”,出现还原数据库的对话框 还原的目标----目标数据库,这里设置数据库的名字 还原的源----选择“源设备”,在弹出的对话框中点击“添加”按钮,找到所备 份的数据库文件,确定。 5、此时,在还原数据库对话框中会出现所还原的数据库的信息。在前面选中所需还 原的数据库。确定。 6、为刚刚还原的数据库设置相应的用户。 a点开“安全性”---右击“登录名”---新建登录名 b 设置登录名(假如为admin),并设置为SQL Server身份验证,输入密码,去除 “强制实施密码策略”前的勾。 C 找到导入的数据库,右击此数据库----选择“属性”,在选择页中,点击“文件” 设置所有者,点击右边的按钮,选择“浏览”,找到相应的用户(如admin)。确 定。。 7、此时重新以admin的身份进入,就可操作相应的数据库。
基础环境规范 备注:M6为本次使用的世纪互联M6机房的缩写,其他机房请更改此缩写。 一、系统基础环境 1.主机名设置: 物理服务器主机名与标签一致 【虚拟机主机名与虚拟机标识(虚拟机管理平台上的标识)一致】 主机名称所有IDC范围内统一命名 主机名作为运维管理对象标识,在其生命周期内不变 命名规则为: https://www.doczj.com/doc/ce8521664.html, M6为idc名称;233-33为主机IP后两位;https://www.doczj.com/doc/ce8521664.html,为本地zone。 2.路由设置(vpn设置情况再讨论) 默认路由由各机房的网络情况决定; 内网路由添加至: /etc/sysconfig/network-scripts/route-em1 (route-eth0) 3.NTP设置 设置两个NTP同步源 主:本IDC NTP服务器 备:中心节点NTP服务器 同步到 https://www.doczj.com/doc/ce8521664.html, 4.DNS设置(每个机房2个local dns;域名:https://www.doczj.com/doc/ce8521664.html, dnspod ) 设置两个DNS服务器 主:本地IDC DNS服务器;备:DNS服务器 根据主机所提供的服务来定义域名: 例:cobbler服务器 cob-idcM6 IN A 10.10.233.33 ntp-idcM6 IN cname https://www.doczj.com/doc/ce8521664.html,. cboss-manage IN cname https://www.doczj.com/doc/ce8521664.html,. 反解暂时不做(邮件系统要做反解) 5.YUM设置
Yum源为本地IDC内源 yum源:https://www.doczj.com/doc/ce8521664.html,, 6.Bash-hacker安装 一个带命令记录的bash Bash-4.1(源码) 7.安装主机硬件检查(厂家工具): 自动采集硬件信息 8.进行文件完整性检查(tripwire )工具安装 9.Profile环境变量统一(/etc/profile; .bash_profile; 定义哪些东西?) #禁止提示接收邮件 echo “unset MAILCHECK” >> /etc/profile source /etc/profile #连接超时10分钟 echo “TMOUT=600″ >>/etc/profile source /etc/profile #默认VI为VIM sed -i "8 s/^/alias vi='vim'/" /root/.bashrc 2>/dev/null echo 'syntax on' > /root/.vimrc 2>/dev/null #解决SSH登录慢的问题 sed -i "s/#UseDNS yes/UseDNS no/" /etc/ssh/sshd_config /etc/init.d/sshd restart #禁止按CTRL+ALT+DEL重启 sed -i s/^ca/\#ca/g /etc/inittab # file descriptors ulimit -HSn 65535 echo -ne " * soft nofile 65536 * hard nofile 65536 " >>/etc/security/limits.conf (/etc/security/limits.d/90-nproc.conf)(centos 6.5) sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config 10.Crontab(注释怎么写,定义哪些东西;编辑方式crontab –e;) 例:
如何使用MySQL数据库 一、下载软件: ●下载MySQL数据库压缩安装文件,解压后得到mysql-essential-5.1.36-win32文件 夹,运行安装程序,将其安装到指定位置。 ●要在Java应用中访问MySQL数据库,需要相应的驱动程序。下载驱动程序 mysql-connector-java-5.1.10.zip,在解压后的文件夹根目录中找到资源包 mysql-connector-java-5.1.10-bin.jar。并将其拷贝到Tomcat的安装目录的lib 文件夹下。 二、基本操作 ●使用密码admin进入编辑管理平台,假设要建立数据库testjdbc,数据表user。 ●建立数据库 create database TestJDBC; ●设定当前数据库 use testJDBC ●建立数据表 create table user(username varchar(32),password varchar(32),age int, address varchar(32) ); ●添加数据 insert into user(username, password, age, address) values(‘John’,’ 123456’,18,’Hexi District, Tianjin’) ●显示数据表内容 select * from user; 三、其他常用命令 ●删除数据库 drop database testjdbc; ●显示当前数据库 show databases; ●显示数据表 show tables; ●删除数据表 drop table user; ●显示数据表结构 describe user; 四、MySQL的配置 ● 1.选择向导,进入配置界面
oracle常用命令 命令解释 $Ps –ef|grep oracle 查看oracle进程是否启动 $ sqlplus "/as sysdba" 以sysdba角色登陆oracle数据库 SQL>startup 显示当前系统中已登录的人员。 SQL>shutdown immediate 关闭数据库 SQL>select * from v$version; 查看oracle数据库版本 SQL>select name from v$database; 查看数据库SID SQL>truncate table table_name 快速清空一个表 SQL>select * from all_users;查看数据库中所有用户 SQL>alter tablespacename offline;将表空间offline SQL> alter tablespacename online ;将表空间online $oerr ora 2236 查错误 alert_{ORACLE_SID}.log 数据库告警日志文件 *.TRC 数据库跟踪文件 Oracle说明 1、数文件:SPFILE不能直接阅读是二进制文件,需要转为文本 2、oracle数据库后,可以查看数据库状态是否open,如果open会显示open字样 SQL> select status, instance_role from v$instance; 3、PFILE:SQL> connect / as sysdba 从spfile创建pfile:SQL> create pfile from spfile; 从pfile创建spfile:CREA TE SPFILE FROM PFILE='/home/oracle/admin/pfile/init.ora'; 4、names是客户端或应用程序需要连接数据库时必须配置的,使用$tnsping service_aliasname可以测试出tns配置的是否正确 5、要文件listener.ora、Tnsnames.ora、Sqlnet.ora,这三个位置在$ORACLE_HOME/network/admin目录下。 6、库启动时要先启动listener Network配置:监听程序lsnrctl
详解强大的SQL注入工具——SQLMAP Akast [N.S.T] 1. 前言 Windows下的注入工具好的又贵,免费的啊D、明小子等又不好用,我们根本没必要花 时间去找什么破解的havij、pangolin什么的,特别是破解的工具很可能被绑了木马。其实Linux下的注入工具也是非常强大的,不过分的说,可以完全取代Windows下面的所有注入工具。 就如backtrack系统里面就有非常丰富的注入工具,对MSSQL、MYSQL、oracle等各种 数据库的应有尽有了,而且这些工具都是免费的,并且是开放源代码的,我们还可以用来修改为合适自己使用的注入工具。 本文给大家介绍的SqlMap是一个开放源码的渗透测试工具,它可以自动探测和利用SQL 注入漏洞来接管数据库服务器。它配备了一个强大的探测引擎,为最终渗透测试人员提供很多猥琐的功能,可以拖库,可以访问底层的文件系统,还可以通过带外连接执行操作系统上的命令。 2. SQLMAP命令详解 为了方便使用我把sqlmap的选项都翻译出来了,当然可能会存在一些不恰当的地方, 请大家指出,可以给我发邮件:akast@https://www.doczj.com/doc/ce8521664.html,。如果我有时间会把这个工具出个中文版。 Options(选项): --version 显示程序的版本号并退出 -h, --help 显示此帮助消息并退出 -v VERBOSE 详细级别:0-6(默认为1) Target(目标): 以下至少需要设置其中一个选项,设置目标URL。 -d DIRECT 直接连接到数据库。 -u URL, --url=URL 目标URL。 -l LIST 从Burp或WebScarab代理的日志中解析目标。 -r REQUESTFILE 从一个文件中载入HTTP请求。 -g GOOGLEDORK 处理Google dork的结果作为目标URL。 -c CONFIGFILE 从INI配置文件中加载选项。 Request(请求):: 这些选项可以用来指定如何连接到目标URL。 --data=DATA 通过POST发送的数据字符串 --cookie=COOKIE HTTP Cookie头 --cookie-urlencode URL 编码生成的cookie注入 --drop-set-cookie 忽略响应的Set - Cookie头信息
SQL常用命令使用方法: (1) 数据记录筛选: sql="select * from 数据表where 字段名=字段值order by 字段名" sql="select * from 数据表where 字段名like ‘%字段值%‘order by 字段名" sql="select top 10 * from 数据表where 字段名order by 字段名" sql="select * from 数据表where 字段名in (‘值1‘,‘值2‘,‘值3‘)" sql="select * from 数据表where 字段名between 值1 and 值2" (2) 更新数据记录: sql="update 数据表set 字段名=字段值where 条件表达式" sql="update 数据表set 字段1=值1,字段2=值2 ……字段n=值n where 条件表达式" (3) 删除数据记录: sql="delete from 数据表where 条件表达式" sql="delete from 数据表" (将数据表所有记录删除) (4) 添加数据记录: sql="insert into 数据表(字段1,字段2,字段3 …)valuess (值1,值2,值3 …)" sql="insert into 目标数据表select * from 源数据表" (把源数据表的记录添加到目标数据表) (5) 数据记录统计函数: AVG(字段名) 得出一个表格栏平均值 COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计 MAX(字段名) 取得一个表格栏最大的值 MIN(字段名) 取得一个表格栏最小的值 SUM(字段名) 把数据栏的值相加 引用以上函数的方法: sql="select sum(字段名) as 别名from 数据表where 条件表达式" set rs=conn.excute(sql) 用rs("别名") 获取统的计值,其它函数运用同上。 (5) 数据表的建立和删除: CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) ……) 例:CREATE TABLE tab01(name varchar(50),datetime default now()) DROP TABLE 数据表名称(永久性删除一个数据表) 4. 记录集对象的方法: rs.movenext 将记录指针从当前的位置向下移一行 rs.moveprevious 将记录指针从当前的位置向上移一行 rs.movefirst 将记录指针移到数据表第一行 rs.movelast 将记录指针移到数据表最后一行 rs.absoluteposition=N 将记录指针移到数据表第N行 rs.absolutepage=N 将记录指针移到第N页的第一行 rs.pagesize=N 设置每页为N条记录 rs.pagecount 根据pagesize 的设置返回总页数 rs.recordcount 返回记录总数 rs.bof 返回记录指针是否超出数据表首端,true表示是,false为否 rs.eof 返回记录指针是否超出数据表末端,true表示是,false为否 rs.delete 删除当前记录,但记录指针不会向下移动 rs.addnew 添加记录到数据表末端 rs.update 更新数据表记录 判断所填数据是数字型 if not isNumeric(request("字段名称")) then response.write "不是数字" else response.write "数字" end if -------------------------------------------------------------------------------- simpleli 于2002-03-23 15:08:45 加贴在ASP论坛上
第一招、mysql服务的启动和停止 net stop mysql net start mysql 第二招、登陆mysql 语法如下:mysql -u用户名-p用户密码 键入命令mysql -uroot -p,回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql 的提示符是: mysql> 注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP 第三招、增加新用户 格式:grant 权限on 数据库.* to 用户名@登录主机identified by "密码" 如,增加一个用户user1密码为password1,让其可以在本机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令: grant select,insert,update,delete on *.* to user1@localhost Identified by "password1"; 如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。 如果你不想user1有密码,可以再打一个命令将密码去掉。 grant select,insert,update,delete on mydb.* to user1@localhost identified by ""; 第四招:操作数据库 登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。 1、显示数据库列表。 show databases; 缺省有两个数据库:mysql和test。mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。 2、显示库中的数据表: use mysql;
创建数据库:[库名] 显示所有数据库: ; 打开数据库[库名] 当前选择地库状态(); 创建数据表[表名]([字段名] [字段类型]([字段要求]) [字段参数], ......); 资料个人收集整理,勿做商业用途 显示数据表字段表名; 当前库数据表结构; 更改表格 [表名] [字段名] 说明:增加一个栏位(没有删除某个栏位地语法. [表名] ([字段名]) 说明:更改表得地定义把某个栏位设为主键. [表名] ([字段名]) 说明:把主键地定义删除. 显示当前表字段; 删库[库名]; 删表[表名]; 数据操作 添加:[表名] ('','',......顺序排列地数据); 查询: * [表名] ([条件]); 建立索引[索引文件名] [表名] ([字段名]); 删除:[表名] ([条件]); 修改:[表名] [修改内容如''] [条件];资料个人收集整理,勿做商业用途 导入外部数据文本: .执行外部地脚本 当前数据库上执行< 指定数据库上执行[表名] < .数据传入命令"[文件名]" [表名]; 资料个人收集整理,勿做商业用途 备份数据库:(下) > 提示:常用命令以";"结束,有少量特殊命令不能加";"结束,如备份数据库 一. 增删改查操作 资料个人收集整理,勿做商业用途 . 增: 表名(,'测试'); 注:如上语句,表结构中有自动增长地列,也必须为其指定一个值,通常为 表名() (,'尹当')同上 .删数据: 表名; 表名; 删除结构: 删数据库:数据库名; 删除表:表名;
删除表中地列表名列名; . 改: 修改所有:表名列名'新地值,非数字加单引号' ; 带条件地修改:表名列名'新地值,非数字加单引号' ; .查: 查询所有地数据:* 表名; 带条件地查询: * 表名列名条件值; * 表名列名()'字符值' 分页查询:* 表名每页数量偏移量; 二.操作命令 资料个人收集整理,勿做商业用途 . 查看数据库信息:; .查看表信息:; .查看表地结构:表名 . 新建数据库数据库名; .操作指定数据库数据库名; .新建数据表(先操作库); 表名(规范为表名) ( ,( 为自动增长) 资料个人收集整理,勿做商业用途 () ) 支持事务和设置表地编码 添加主外键: 外表名名称(外列) 主表名(主列) 资料个人收集整理,勿做商业用途 如现有两表主表子表现子表地列引用了主表地列资料个人收集整理,勿做商业用途则命令如下: () () 资料个人收集整理,勿做商业用途 .导出表,备份到一个文件中,如 命令窗口:用户名需要备份地数据库名>备份地文件地保存路径和文件名资料个人收集整理,勿做商业用途 注:如指定地文件不存在,会自动添加一个文件,此命令不能加分号结尾(文件没有备份建数据库操作)资料个人收集整理,勿做商业用途 .导入数据库备份文件: ().在命令窗口 ().新建一个要导入地数据库(因为备份中没有备份建数据库操作) () 当前库名 () 备份地文件地保存路径和文件名(此命令不能加分号结尾) 三:系统操作 资料个人收集整理,勿做商业用途 . 打开服务(为配置时,可自定名称) .关闭服务 .从模式进入 () 用户名回车>输入正确密码>进入欢迎
WAF(Web应用防火墙)浅析 1、关于WAF WAF(Web Application Firewall,Web应用防火墙)是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。 WAF基本上可以分为以下几类。 (1)软件型WAF 以软件形式装在所保护的服务器上的WAF,由于安装在服务器上,所以可以接触到服务器上的文件,直接检测服务器上是否存在WebShell、是否有文件被创建等。 (2)硬件型WAF 以硬件形式部署在链路中,支持多种部署方式,当串联到链路中时可以拦截恶意流量,在旁路监听模式时只记录攻击不进行拦截。 (3)云WAF 一般以反向代理的形式工作,通过配置NS记录或CNAME记录,使对网站的请求报文优先经过WAF主机,经过WAF主机过滤后,将认为无害的请求报文再发送给实际网站服务器进行请求,可以说是带防护功能的CDN。 (4)网站系统内置的WAF
网站系统内置的WAF也可以说是网站系统中内置的过滤,直接镶嵌在代码中,相对来说自由度高,一般有以下这几种情况。 ●输入参数强制类型转换(intval等)。 ●输入参数合法性检测。 ●关键函数执行(SQL执行、页面显示、命令执行等)前,对经过代码流程的输入进行检测。 ●对输入的数据进行替换过滤后再继续执行代码流程(转义/替换掉特殊字符等)。 网站系统内置的WAF与业务更加契合,在对安全与业务都比较了解的情况下,可以更少地收到误报与漏报。 2、WAF判断 下面介绍判断网站是否存在WAF的几种方法。 (1)SQLMap 使用SQLMap中自带的WAF识别模块可以识别出WAF的种类,但是如果按下面装的WAF并没有什么特征,SQLMap就只能识别出类型是Generic。 2)手工判断 这个也比较简单,直接在相应网站的URL后面加上最基础的测试语句,比如union select 1,2,3%23,并且放在一个不存在的参数名中,本例里使用的是参数aaa,如图2所示,触发了WAF的防护,所以网站存在WAF 因为这里选取了一个不存在的参数,所以实际并不会对网站系统的执行流程造成任何影响,此时被拦截则说明存在WAF。
MYSQL数据库基本操作命令 用户名和密码:123456 创建一个名称为mydb1的数据库。 create database mydb1; 查看所有数据库 show databases; 创建一个使用utf-8字符集的mydb2数据库。 create database mydb2 character set utf8; 创建一个使用utf-8字符集,并带校对规则的mydb3数据库。 create database mydb3 character set utf8 collate utf8_general_ci; 显示库的创建信息 show create database mydb3; 删除前面创建的mydb1数据库 drop database mydb1; 查看服务器中的数据库,并把其中某一个库的字符集修改为gb2312; alter database mydb2 character set gb2312; show create database mydb2; 备份库 1、准备库的数据 create database mydb1; use mydb1; create table test ( id int ); insert into test(id) values(1); select * from test; 2、删除库:drop database mydb1; 3、 4.1 创建库:create database mydb1; 4.2 \. test.sql (通过执行脚本文件实现) 5、
创建一个员工表 use mydb1; 进入库 create table employee ( id int, name varchar(20), gender varchar(4), birthday date, entry_date date, job varchar(40), salary double, resume text )character set utf8 collate utf8_general_ci; 查看库中所有表 show tables; 查看表的创建细节 show create table employee; 查看表的结构 desc employee; 在上面员工表的基本上增加一个image列。 alter table employee add image blob; 修改job列,使其长度为60。 alter table employee modify job varchar(60); 删除sex列。 alter table employee drop gender; 表名改为user。 rename table employee to user; 修改表的字符集 alter table user character set gb2312; show create table user; 列名name修改为username alter table user change column name username varchar(20); 使用insert语句向表中插入一个员工的信息。 insert into employee(id,username,birthday,entry_date,job,salary,resume)
Unix系统及数据库常用操作命令 oninit 数据库启动 onmode -ky 数据库关闭 onstat -l 查看逻辑日志使用情况 ontape -c 连续备份逻辑日志 onstat -g iof 查看每个chunk 的I/O 情况 onstat -g mem 查看数据库存的情况 onstat -d 查看数据库chunk 的使用情况 ontape -s -L 0 数据库0 级备份 dbimport
Sql Server 常用函数 1,统计函数avg, count, max, min, sum 2, 3,多数聚会不统计值为null的行。可以与distinct一起使用去掉重复的行。可以与group by 来分组4, 5, 2,数学函数 6, 7, SQRT 8, ceiling(n) 返回大于或者等于n的最小整数 9, floor(n), 返回小于或者是等于n的最大整数 10,round(m,n), 四舍五入,n是保留小数的位数 11,abs(n) 12,sign(n), 当n>0, 返回1,n=0,返回0,n<0, 返回-1 13,PI(), 3.1415.... 14,rand(),rand(n), 返回0-1之间的一个随机数 15,3,字符串函数 16, 17,ascii(), 将字符转换为ASCII码, ASCII('abc') = 97 18,char(), ASCII 码转换为字符 19,low(),upper() 20,str(a,b,c)转换数字为字符串。a,是要转换的字符串。b是转换以后的长度,c是小数位数。 str(123.456,8,2) = 123.46 21,ltrim(), rtrim() 去空格 22,left(n), right(n), substring(str, start,length) 截取字符串 23,charindex(子串,母串),查找是否包含。返回第一次出现的位置,没有返回0 24,patindex('%pattern%', expression) 功能同上,可是使用通配符 25,replicate('char', rep_time), 重复字符串 26,reverse(char),颠倒字符串 27,replace(str, strold, strnew) 替换字符串 28,space(n), 产生n个空行 29,stuff(), SELECT STUFF('abcdef', 2, 3, 'ijklmn') ='aijklmnef', 2是开始位置,3是要从原来串中删除的字符长度,ijlmn是要插入的字符串。 30,3,类型转换函数: 31, 32,cast, cast( expression as data_type), Example: 33,SELECT SUBSTRING(title, 1, 30) AS Title, ytd_sales FROM titles WHERE CAST(ytd_sales AS char(20)) LIKE '3%' 34,convert(data_type, expression) 35,4,日期函数 36, 37,day(), month(), year() 38,dateadd(datepart, number, date), datapart指定对那一部分加,number知道加多少,date指定在谁的基础上加。datepart的取值包括,
实训反射型XSS 1 一、实训目的 1. 了解XSS不同类型的异同 2. 掌握反射型XSS的利用 二、实训环境 1. DVWA平台 2. Firefox浏览器(谷歌浏览器) 三、实训内容 1. 配置DVWA平台 进入DVWA平台,选择DVWA Security,将安全级别设置为Low。 2. 反射型XSS漏洞挖掘 (1)点击XSS(Reflected),进入测试页面。 (2)在URL地址框中输入,出现弹框。 (3)在URL地址框中输入,出现弹框,获得当前页面的cookie。 3. 将操作过程截图,整理文档后上传平台。 实训反射型XSS 2 一、实训目的
1. 了解XSS不同类型的异同 2. 掌握反射型XSS的利用 二、实训环境 1. DVWA平台 2. Firefox浏览器(谷歌浏览器) 三、实训内容 1. 配置DVWA平台 进入DVWA平台,选择DVWA Security,将安全级别设置为Medium。 2. 反射型XSS漏洞挖掘 (1)点击XSS(Reflected),进入测试页面。 (2)在URL地址框中输入,没有弹框。 (3)选择“View Source”查看源程序,发现服务器端使用str_replace()函数对“