本文目录一览:
- 1、lua脚本有没有自加自减运算符?
- 2、lua脚本语言的概念解释?
- 3、如何在 Linux 系统上安装 Suricata 入侵检测系统
- 4、我是用asp做网站的,现在找工作发现网上就那么2家公司,我感觉好像用的人越来越少啊,
- 5、学会入侵网站需要会哪些知识
lua脚本有没有自加自减运算符?
没有 那样的运算符
但是如果你需要的是每次访问时都会自增的变量的话我可以实现
刚好前几天我回答了个类似的问题
tab = {}
_tab = {}
_tab.amount = 0
meta = {
__index = function(t,k)
if k == "amount" then
_tab.amount = _tab.amount + 1
return _tab.amount
else
return _tab[k]
end
end,
__newindex = function(t,k,v)
_tab[k] = v
end}
setmetatable(tab,meta)
你可以设置 tab里某个变量 然后每次访问的时候它都自增,但是它每次被访问都会被自增
比如
tab.amount = 0
print(tab.amount)
print(tab.amount)
print(tab.amount)
lua脚本语言的概念解释?
Lua 教程
lua
Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
Lua 是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组于 1993 年开发的,该小组成员有:Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo。
设计目的
其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
Lua 特性
轻量级: 他用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。
可扩展: Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。
其它特性:
支持面向过程(procedure-oriented)编程和函数式编程(functional programming);
自动内存管理;只提供了一种通用类型的表(table),用它可以实现数组,哈希表, *** ,对象;
语言内置模式匹配;闭包(closure);函数也可以看作一个值;提供多线程(协同进程,并非操作系统所支持的线程)支持;
通过闭包和table可以很方便地支持面向对象编程所需要的一些关键机制,比如数据抽象,虚函数,继承和重载等。
Lua 应用场景
游戏开发
独立应用脚本
Web 应用脚本
扩展和数据库插件如:MySQL Proxy 和 MySQL WorkBench
安全系统,如入侵检测系统
之一个 Lua 程序
接下来我们使用 Lua 来输出"Hello World!"
实例(Lua 5.3)
print("Hello World!")
如何在 Linux 系统上安装 Suricata 入侵检测系统
由于安全威胁持续不断,配备入侵检测系统(IDS)已成为如今数据中心环境下最重要的要求之一。然而,随着越来越多的服务器将网卡升级到10GB/40GB以太网技术,我们越来越难在大众化硬件上以线速实施计算密集型入侵检测。扩展IDS性能的一个 *** 就是使用多线程IDS。在这种IDS下,大量耗用CPU资源的深度数据包检查工作负载并行化处理,分成多个并发任务。这种并行化检查机制可以充分发扬多核硬件的优势,轻松扩展IDS的处理能力。这方面的两个知名的开源工具就是Suricata()和Bro()。
我在本教程中将演示如何在Linux服务器上安装和配置Suricata IDS。
在Linux上安装Suricata IDS
不妨用源代码构建Suricata。你先要安装几个所需的依赖项,如下所示。
在Debian、Ubuntu或Linux Mint上安装依赖项
$ sudo apt-get install wget build-essential libpcre3-dev libpcre3-dbg automake autoconf libtool libpcap-dev libnet1-dev libyaml-dev zlib1g-dev libcap-ng-dev libjansson-dev
在CentOS、Fedora或RHEL上安装依赖项
$ sudo yum install wget libpcap-devel libnet-devel pcre-devel gcc-c++ automake autoconf libtool make libyaml-devel zlib-devel file-devel jansson-devel nss-devel
一旦你安装了所有必需的程序包,现在可以安装Suricata了,如下所示。
首先,从下载最新的Suricata源代码,编译代码。截至本文撰稿时,最新版本是2.0.8。
$ wget
$ tar -xvf suricata-2.0.8.tar.gz
$ cd suricata-2.0.8
$ ./configure --sysconfdir=/etc --localstatedir=/var
这是配置的示例输出结果。
Suricata Configuration:
AF_PACKET support: yes
PF_RING support: no
NFQueue support: no
NFLOG support: no
IPFW support: no
DAG enabled: no
Napatech enabled: no
Unix socket enabled: yes
Detection enabled: yes
libnss support: yes
libnspr support: yes
libjansson support: yes
Prelude support: no
PCRE jit: yes
LUA support: no
libluajit: no
libgeoip: no
Non-bundled htp: no
Old barnyard2 support: no
CUDA enabled: no
现在编译并安装它。
$ make
$ sudo make install
Suricata源代码随带默认的配置文件。不妨安装这些默认的配置文件,如下所示。
$ sudo make install-conf
正如你所知,要是没有IDS规则集,Suricata毫无用处。颇为方便的是,Makefile随带IDS规则安装选项。想安装IDS规则,运行下面这个命令即可。
$ sudo make install-rules
上述规则安装命令会从EmergingThreats.net()安装可用的社区规则集的最新快照,并将它们存储在/etc/suricata/rules下。
首次配置Suricata IDS
现在就可以配置Suricata了。配置文件位于/etc/suricata/suricata.yaml。使用文本编辑工具打开文件,以便编辑。
$ sudo vi /etc/suricata/suricata.yaml
下面是一些基本的设置,供你开始入门。
“default-log-dir”关键字应该指向Suricata日志文件的位置。
default-log-dir: /var/log/suricata/
在“vars”这部分下面,你会找到Suricata使用的几个重要变量。“HOME_NET”应该指向由Suricata检查的本地 *** 。“!$HOME_NET”(被分配给EXTERNAL_NET)指本地 *** 以外的任何 *** 。“XXX_PORTS”表明不同服务所使用的一个或多个端口号。请注意:不管使用哪个端口, Suricata都能自动检测HTTP流量。所以,正确指定HTTP_PORTS变量并不是很重要。
vars:
HOME_NET: "[192.168.122.0/24]"
EXTERNAL_NET: "!$HOME_NET"
HTTP_PORTS: "80"
SHELLCODE_PORTS: "!80"
SSH_PORTS: 22
“host-os-policy”这部分用来防范一些利用操作系统的 *** 堆栈的行为(比如TCP重组)来规避检测的常见攻击。作为一项应对措施,现代IDS想出了所谓的“基于目标的”检测,检查引擎根据流量的目标操作系统,对检测算法进行微调。因而,如果你知道每个本地主机运行什么操作系统,就可以将该信息提供给Suricata,从而有望提高其检测速度。这时候用到了“host-os-policy“部分。在该例子中,默认的IDS策略是Linux;如果不知道某个IP地址的操作系统信息,Suricata就会运用基于Linux的检查策略。如果捕获到192.168.122.0/28和192.168.122.155的流量,Suricata就会运用基于Windows的检查策略。
host-os-policy:
# 这些是Windows机器。
windows: [192.168.122.0/28, 192.168.122.155]
bsd: []
bsd-right: []
old-linux: []
# 将Linux作为默认策略。
linux: [0.0.0.0/0]
old-solaris: []
solaris: ["::1"]
hpux10: []
hpux11: []
irix: []
macos: []
vista: []
windows2k3: []
在“threading”这部分下面,你可以为不同的Suricata线程指定CPU亲和性(CPU affinity)。默认情况下,CPU亲和性被禁用(“set-cpu-affinity: no”),这意味着Suricata线程将被安排在任何可用的CPU核心上。默认情况下,Suricata会为每个CPU核心创建一个“检测”线程。你可以调整这个行为,只要指定“detect-thread-ratio: N”。这会创建N x M个检测 线程,其中M是指主机上CPU核心的总数。
threading:
set-cpu-affinity: no
detect-thread-ratio: 1.5
就上述线程设置而言,Suricata会创建1.5 x M个检测线程,其中M是系统上CPU核心的总数。
想了解关于Suricata配置的更多信息,你可以阅读默认的配置文件本身,为了便于理解,加有大量注释。
使用Suricata执行入侵检测
现在可以试着运行Suricata了。在启动它之前,还有一个步骤要完成。
如果你使用pcap捕获模式,强烈建议关闭Suricata侦听的那个网卡上的任何数据包卸载功能(比如LRO/GRO),因为那些功能可能会干扰数据包实时捕获。
下面介绍如何关闭 *** 接口eth0上的LRO/GRO:
$ sudo ethtool -K eth0 gro off lro off
请注意:视使用的网卡而定,你可能会看到下列警示信息,可以忽视这个信息。它只是意味着你的网卡不支持LRO。
Cannot change large-receive-offload
Suricata支持多种运行模式。运行模式决定了不同的线程如何用于IDS。下面这个命令列出了所有可用的运行模式。
$ sudo /usr/local/bin/suricata --list-runmodes
Suricata使用的默认运行模式是autofp(代表“自动流绑定负载均衡模式”)。在这种模式下,来自每一路流的数据包被分配给单一的检测线程。流被分配给了未处理数据包数量最少的线程。
最后,不妨启动Suricata,看看它的实际运行情况。
$ sudo /usr/local/bin/suricata -c /etc/suricata/suricata.yaml -i eth0 --init-errors-fatal
在这个例子中,我们监控一个8核系统上的 *** 接口eth0。如上所示,Suricata创建了13个数据包处理线程和3个管理线程。数据包处理线程包括1个PCAP数据包捕获线程和12个检测线程(相当于8 x 1.5)。这意味着,一个捕获线程捕获的数据包经负载均衡处理后,变成了IDS面前的12个检测线程。管理线程是一个流管理器和两个计数器/统计相关线程。
下面是Suricata进程的线程视图(由htop描绘)。
Suricata检测日志存储在/var/log/suricata目录下。
$ tail -f /var/log/suricata/fast.log
04/01/2015-15:47:12.559075 [**] [1:2200074:1] SURICATA TCPv4 invalid checksum [**] [Classification: (null)] [Priority: 3] {TCP} 172.16.253.158:22 - 172.16.253.1:46997
04/01/2015-15:49:06.565901 [**] [1:2200074:1] SURICATA TCPv4 invalid checksum [**] [Classification: (null)] [Priority: 3] {TCP} 172.16.253.158:22 - 172.16.253.1:46317
04/01/2015-15:49:06.566759 [**] [1:2200074:1] SURICATA TCPv4 invalid checksum [**] [Classification: (null)] [Priority: 3] {TCP} 172.16.253.158:22 - 172.16.253.1:46317
为了易于导入,还有 *** ON格式的日志:
$ tail -f /var/log/suricata/eve.json
{"timestamp":"2015-04-01T15:49:06.565901","event_type":"alert","src_ip":"172.16.253.158","src_port":22,"dest_ip":"172.16.253.1","dest_port":46317,"proto":"TCP","alert":{"action":"allowed","gid":1,"signature_id":2200074,"rev":1,"signature":"SURICATA TCPv4 invalid checksum","category":"","severity":3}}
{"timestamp":"2015-04-01T15:49:06.566759","event_type":"alert","src_ip":"172.16.253.158","src_port":22,"dest_ip":"172.16.253.1","dest_port":46317,"proto":"TCP","alert":{"action":"allowed","gid":1,"signature_id":2200074,"rev":1,"signature":"SURICATA TCPv4 invalid checksum","category":"","severity":3}}
我是用asp做网站的,现在找工作发现网上就那么2家公司,我感觉好像用的人越来越少啊,
还是建议改PHP吧,理由多的没法说。开源,基于MYSQL数据库,也是免费的。大站基本都用PHP,貌似百度也是PHP
学会入侵网站需要会哪些知识
想学网站入侵,首先需要学习基本知识,各种名词,要不然在学习的时候,连讲的基本用语都听不懂,数据库是必须要学习的,开发语言也需要学习。
既然是菜鸟,建议从基础学起,从百度里找个好的论坛。网站入侵主要是找网站的漏洞,漏洞主要来自编程人员的粗心,但是想要找到这些漏洞,你也必须要掌握一定的知识才能掌握的。
以下一些知识是必须掌握的:
HTML
PHP
ASP
ASP.net
SQL
JavaScript
C/C++
Ruby
Python
LUA
前六个是做网站用的,后面都是编程语言,c/cpp是基础就不说了,ruby可以用来编写通用网关接口脚本,还可以被嵌入到HTML里,Python也可以做网站,很多攻击,探测脚本就是Python写的。