PowerShell小技巧之调用CloudFlare的SDK查询网站统计信息
CloudFlare是举世闻名的CDN服务商,其免费套餐也足以满足普通用户。优化网站加载速度,缓存静态资源,分地域进行内容就近分发,抵御Ddos攻击。总之,很好,很厚道。但是在天朝许多结点被封,本身的DNS被封,和谷歌与FB一样,同是天涯沦落人(其实我们自己才是)。
我在查看CloudFlare的SDK时,发现支持Windows平台支持Invoke-WebRequest,也就是PowerShell,就试着调用了下,果然可以。
比如查询网站的统计信息:
$body = @{ a = 'stats' tkn = '88190c6b06d12a8' email = 'mosser@pstips.net' z = 'pstips.net' interval = 20 } $cfResult=Invoke-RestMethod 'https://www.cloudflare.com/api_json.html' -Body $body $cfResult.response.result.objs.trafficBreakdown.uniques | ft -AutoSize
输出为:
regular threat crawler ------- ------ ------- 4 12 29
大概是说:常规访问4次,恶意攻击12次,爬虫访问29次。
相关推荐
-
Powershell小技巧之使用Update-TypeData扩展类型系统
脚本 Update-TypeData -TypeName 'System.DateTime' -MemberName '时辰' -MemberType 'ScriptProperty' -Value { $timeAliasArray='子丑寅卯辰巳午未申酉戌亥' $hour = $this.Hour [int]$index=0 if($hour -eq 22){ $index=11 } else{ $index=[math]::Floor( ( $hour+1 ) % 23 / 2 ) } r
-
Powershell小技巧之判断是否包涵大小写
使用正则表达式可以检查一个字符中是否包涵一个大写字母: $text1 = 'this is all lower-case' $text2 = 'this is NOT all lower-case' $text1 -cmatch '[A-Z]' $text2 -cmatch '[A-Z]' 结果将返回"true"或"false" 反过来检查是否包含小写,可以尝试这样: $text1 = 'this is all lower-case' $text2 = 'this
-
Powershell小技巧--将文件夹中的大文件分成若干份
朋友有一文件夹,全部是EML文件,约20G.他需要把这20G文件按每个文件夹2G分成10个.于是乎写了以下脚本: #目标文件夹 $scrfile = "d:\test" #起始目录名 $directory = 0 #1825361100 #76547428 #判断当目录的文件数大于0时while循环为真 while( (dir -Path $scrfile -Filter *.eml ).count -gt 0) { #起始目录名为1 $directory++ #建立目录 New-It
-
Powershell小技巧之等待输入一个按键
支持所有PS版本,仅支持PS控制台. 当一个脚本使用PS控制台启动时,你可能想要在中间穿插一个"输入任意键".这里有一个方法可以实现: Write-Host 'Press Any Key!' -NoNewline $null = [Console]::ReadKey('?') 这只能正常运行在PS控制台.它将不能运行在ISE编辑器或任何其它PS编辑器,它们没有在真实控制台的将没有键盘交互效果.
-
Powershell小技巧之找出脚本中的错误
找出脚本之中的语法错误从来就不是轻松的事情,但是可以这样去筛选: filter Test-SyntaxError { $text = Get-Content -Path $_.FullName if ($text.Length -gt 0) { $err = $null $null = [System.Management.Automation.PSParser]::Tokenize($text, [ref] $err) if ($err) { $_ } } } 这个脚本中,你可以快速扫描一个目
-
Powershell小技巧之获取当前的时间并转换为时辰
午时三刻已到,行刑,刀下留人,现在到底是不是午时,能否让PowerShell告诉我呢? 好的, 没问题.从晚上23点到凌晨2点之间属于子时,每两个小时一个时辰,依次为"子丑寅卯辰巳午未申酉戌亥". 函数获取当前时辰 用PowerShell脚本实现: function Get-ChinaTimeAlias { param( [ValidateRange(0,23)] [int]$Hour = (get-date).Hour ) $timeAliasArray='子丑寅卯辰巳午未申酉戌亥'
-
Powershell小技巧之轻松从网上下载文件
支持所有PS版本 在PS中可以轻松的从网上下载文件.这里有一段代码下载PS说明书(这是一个珍贵并丰富的Powershell文档)自动到你的电脑. 复制代码 代码如下: $link = 'http://download.microsoft.com/download/3/2/6/326DF7A1-EE5B-491B-9130-F9AA9C23C29A/PowerShell%202%200%20Language%20Specification.docx' $outfile = "$env:temp\l
-
PowerShell小技巧之调用CloudFlare的SDK查询网站统计信息
CloudFlare是举世闻名的CDN服务商,其免费套餐也足以满足普通用户.优化网站加载速度,缓存静态资源,分地域进行内容就近分发,抵御Ddos攻击.总之,很好,很厚道.但是在天朝许多结点被封,本身的DNS被封,和谷歌与FB一样,同是天涯沦落人(其实我们自己才是). 我在查看CloudFlare的SDK时,发现支持Windows平台支持Invoke-WebRequest,也就是PowerShell,就试着调用了下,果然可以. 比如查询网站的统计信息: $body = @{ a = 'stats'
-
PowerShell小技巧之获取Windows系统密码Hash
当你拿到了系统控制权之后如何才能更长的时间内控制已经拿到这台机器呢?作为白帽子,已经在对手防线上撕开一个口子,如果你需要进一步扩大战果,你首先需要做的就是潜伏下来,收集更多的信息便于你判断,便于有更大的收获.用什么方法才能有尽可能高的权限,同时能更有效的隐藏自己,是留webshell,留后门,种木马还是Rootkit?webshell,哪怕是一句话木马都很容易被管理员清除,放了木马,也容易被有经验的管理员查出,不管是早期自己创建进程,进程被干掉就完了,还是注入进程的木马,或者是以服务自启动的木马
-
PowerShell小技巧之查找获取注册表路径
在先前的技巧中我们说明如何将一个PS内置的路径格式转化成一个实际路径.这里介绍了一个例子.这段代码递归从HKEY_CURRENT_USER获取所有包含"powershell"词缀的键(简单的替换查询词缀将能获得你想要查询的任何东西) 复制代码 代码如下: Get-ChildItem -Path HKCU:\ -Include *PowerShell* -Recurse -ErrorAction SilentlyContinue|Select-Object -Property *Path
-
Powershell小技巧之使用WS-Man来调用PowerShell命令
虽然PowerShell远程管理被构建在 WS-Management的之上,但它是协议中的协议.如果尝试使用 PSRP (PowerShell远程处理协议)直接进行交互,本质上需要在客户端机器上运行一个PowerShell副本.另一种方法是使用一个鲜为人知的远程命令行工具,称为WinRS.WinRS是一个简单的工具,允许远程CMD.EXE,它也是构建在WS-Management之上的.所不同的是WinRS重用了 WS-Transfer中的Create和Delete,并引入了一些新的自定义的SOA
-
Powershell小技巧之获取MAC地址
在Powershell中获取MAC地址不是很难.这里就有一种方法: 复制代码 代码如下: PS> getmac /FO CSV | ConvertFrom-Csv Physical Address Transport Name ---------------- -------------- 5C-51-4F-6
-
Powershell小技巧之使用Jint引擎在PowerShell中执行Javascript函数
这里演示如何利用PowerShell将一段Javascript函数字符串交给Jint引擎去执行. 执行Javascript函数 .Net版的Javascript解释器 可以从Git上获取Jint的代码,也可以从nuget上下载Jint的程序集. Jint是一个面向.Net的Javascript解释器.Jint不会把Javascript编译成.Net字节码,所以它非常适用于脚本小且运行起来速度快的工程,或者运行在不同平台上的脚本. PowerShell调用 拿到Dll根据-Path参数直接使用Ad
-
PowerShell小技巧之实现文件下载(类wget)
对Linux熟悉的读者可能会对Linux通过wget下载文件有印象,这个工具功能很强大,在.NET环境下提到下载文件大多数人熟悉的是通过System.Net.WebClient进行下载,这个程序集能实现下载的功能,但是有缺陷,如果碰上类似于-/scripts/?dl=417这类的下载链接将无法正确识别文件名,下载的文件通常会被命名为dl=417这样古怪的名字,其实对应的文件名是在访问这个链接返回结果的HTTP头中包含的.事实上微软也提供了避免这些缺陷的程序集System.Net.HttpWebR
-
PowerShell小技巧之获取TCP响应(类Telnet)
通常情况下,为了检测指定的TCP端口是否存活,我们都是通过telnet指定的端口看是否有响应来确定,然而默认情况下win8以后的系统默认是不安装telnet的.设想一下如果你黑进了一个服务器,上面没装telnet,但是为了进一步渗透进内网,需要探测内部服务器特定端口是否打开,同时你还不愿意安装telnet,担心引起管理员注意.那么好吧,在这个情况下你需要我的这个脚本.由于它是原生态的PowerShell语句完成,木有telnet你也照样能检测TCP端口的情况了. 下面首先上代码,后面进行讲解:
-
Powershell小技巧之获取对象可变的特征
当你得到一个有属性对象,它的一些值有的改变,有的则只能读取. 这里有个技巧可以找出那些可以更改的属性.代码的有效范围是当前控制台,但你可以调用不同的命令结果: 复制代码 代码如下: $myProcess = Get-Process -Id $Pid $myProcess | Get-Member -MemberType Properties | Out-String -Stream | Where-Object { $_ -like '*set;*' } 结果如下: 复制代码 代码如
随机推荐
- Python函数学习笔记
- mysql服务启动却连接不上的解决方法
- VBS教程:函数-FormatDateTime 函数
- Python利用pyHook实现监听用户鼠标与键盘事件
- Spring Boot实现图片上传功能
- Asp.Mvc 2.0用户客户端验证实例讲解(3)
- asp.Net JS取母板页控件值的简单方法
- Python编程中的反模式实例分析
- C语言之双向链表详解及实例代码
- Docker 学习文档(知识结构整理)
- 9段PHP实用功能的代码推荐
- js 实现复制到粘贴板的功能代码
- thinkPHP实现表单自动验证
- jQuery.getScript加载同域JS的代码
- CentOS系统下编译安装MySQL以及设置相关yum源的教程
- jQuery层级选择器用法分析
- Android使用criteria选择合适的地理位置服务实现方法
- JAVA Frame 窗体背景图片,首位相接滚动代码实例
- 常用SQL功能语句
- Spring Boot实战之逐行释义Hello World程序