mawk

[翻译]正则引擎的几种分类

眉间皱痕 提交于 2021-01-17 14:50:36
原文链接 http://www.softec.lu/site/RegularExpressions/RegularExpressionEngines 正则表达式引擎是正则表达式匹配算法的基础。其有多种不同的实现,但大多数都是基于Henry Spencer的NFA引擎。 正则引擎有两个大分类,DFA和NFA,像Perl、Java、.Net、 PHP 、Python、Ruby……等大多是工具都是用了NFA引擎。少数广泛被使用的工具如 mawk 使用了POSIX NFA引擎(NFA的一种变种)。以高效著称的工具采用了更为高效的DFA引擎。诸如GNU awk,GNU egrep和Tcl之类的一些工具结合了NFA / DFA两种引擎,将两者的优点结合在一起。 基于不同类型引擎的实现的正则表达式,主要有以下几点差异。 语法 匹配内容 零宽断言(环视) 功能 捕获功能 性能 所有的引擎都会对文本做从左向右的最长匹配,但具体细节取决于使用了何种引擎。 传统的NFA引擎 NFA引擎中使用的非确定有限状态机(Nondeterministic finite automation)是一种由要匹配的表达式驱动的算法。这使得正则表达式像一个小的编程语言一样,可控制引擎在匹配失败时候的行为。 正则引擎从正则表达式其实位置开始,尝试正则表达式与文本的开头进行匹配,如果匹配成功,都前进一个配置

Vulnhub-靶机-TOPPO: 1

只谈情不闲聊 提交于 2020-12-12 09:42:02
本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关 靶机下载之后使用仅主机模式加载到本地VMware Workstation工作站,需要发现目标靶机的IP地址,可以使用nmap,netdiscover,或者arp之类的工具 arp-scan 例如:sudo arp-scan -I eth1 -l 当然也是可以使用Windows环境下mac地址扫描工具都是可以的,那么本次演示就是arp-scan工具发现 地址:https://www.vulnhub.com/entry/toppo-1,245/ 直接nmap扫描 目标开了个80端口,访问看看 发现一个admin目录,访问看看 根据提示是知道目标靶机的密码,但是不知道用户名,这个时候尝试试试看的态度,看用户名是否是ted,通过这个用户名使用ssh去登录目标靶机 居然登录成功 拿到此权限看看是否存在SUID的权限 find / -perm -u=s -type f 2>/dev/null 发现含有类似awk的编译环境,具体可看下面链接了解 https://www.cnblogs.com/GodMode/p/4949370.html 直接使用此命令进行提权 mawk 'BEGIN {system("/bin/sh")}' 这里因为python也存在SUID的权限

How to enable interval regular expression in mawk?

无人久伴 提交于 2019-12-23 02:52:53
问题 I hit an issue when I run the mawk on Ubuntu 1604: echo "123-456" | mawk '$0~/^[0-9]{3}/ {print $0}' The above command output nothing although the regular pattern matched actually. Then I tried to run the egrep with the same regular pattern: echo "123-456" | egrep '^[0-9]{3}' It works fine! Then I looked up the doc of the mawk, it seems the root cause is "Interval expressions were not traditionally available in awk.". The field "{3}" in the regular pattern cause the issue. If I use "[0-9][0-9