首页
关于
友人
留言
更多
壁纸
直播
视频
推荐
开往
图床
图标库
阿里图标库
Search
1
最新最全Markdown语法大全
12268 阅读
2
分享几个免费申请SSL证书的网站
2870 阅读
3
用JS判断用户来路域名,实现不同来路展现不同界面
1336 阅读
4
网友因cos痛哭流泪
926 阅读
5
发起一次网络攻击要花多少钱?
595 阅读
生活笔记
折腾笔记
代码笔记
Search
标签搜索
Typecho
PHP
A站
评论
头像
互赞宝
富豪刑警
JS
CDN
PHP代码
Pandownload
Vue
网站源码
轻量级
源码
Markdown
开往-Travelling
Redis
网络攻击
黑客攻击
白鸽
累计撰写
28
篇文章
累计收到
53
条评论
首页
栏目
生活笔记
折腾笔记
代码笔记
页面
关于
友人
留言
壁纸
直播
视频
推荐
开往
图床
图标库
阿里图标库
搜索到
7
篇与
折腾笔记
的结果
2021-02-18
腾讯QQ二代变无是什么意思?怎么避免?怎么解决?
腾讯扣扣号二代变无是什么意思?二代变无,即二代变无保,QQ密保工具失效。QQ账号有密保工具,比如密保手机,QQ令牌等,但是某一天此QQ突然被冻结保护,解冻需要修改QQ密码,但是修改密码却不能验证密保工具,只能填写资料申诉。腾讯QQ二变无原因:原因1.怀疑号码被买卖了,冻结制裁比如从一个IP换成了另一个IP登录,同时进行了密保手机更换、头像昵称等资料的修改,以及好友的增删。基本可以断定号码被转让了,腾讯公司会采取二变无冻结的方式进行制裁。原因2.登录IP异常异常IP主要是指敏感IP,如经常被举报的IP,腾讯公司怀疑该QQ被盗用,会进行冻结保护。原因3.有多个异地IP登录怀疑多人共用账号,腾讯会以违反使用条例进行冻结制裁,并且这种申诉基本是不给通过的。如何避免QQ账号出现二代变无?1.更换密保手机时,尽量避免异地登录,更不能在密保手机更换前后进行修改QQ头像、资料、增删好友等敏感操作2.不要在敏感IP登录,如经常有被举报封号的IP3.避免异地多IP来回切换登录。腾讯QQ二代变无解决方式:由于原因1和原因2造成的二变无,验证资料正确、完整,申诉可以申诉成功的。由于原因3造成的二变无,基本无解,申诉通过概率小。刚收来的QQ不要去接着修改资料(心急吃不了热豆腐)以下是我对收来的QQ保养基本常识1、登录安全中心找到异地登陆点击信任地区;2、头像、网名、地区等一系列资料在3-7天内不要去着急修改,因为这样会检测到风险,轻者冻结,重者可能会导致二代变无(二代变无保)3、在搜索界面搜索成长守护平台,查看是否拥有修改信息次数(个人意愿,纯属癖好不癖好)
2021年02月18日
12 阅读
1 评论
1 点赞
2021-02-08
2021最新官方IP地址查询接口
网易云接口http://ip.ws.126.net/ipquery?ip=[IP地址]搜狐接口http://pv.sohu.com/cityjson?ie=utf-8爱奇艺接口http://ip.geo.iqiyi.com/cityjson?format=json&ip=[IP地址]ip-apihttp://ip-api.com/json/[IP地址]?lang=zh-CN太平洋电脑网接口http://whois.pconline.com.cn/ipJson.jsp?ip=[IP地址]&json=true腾讯接口https://apis.map.qq.com/ws/location/v1/ip?output=jsonp&key=KUQBZ-FYDCU-YMVVN-2DDW5-7WDYE-5JBJR&ip=[IP地址]&callback=jQuery18301852690032249129_1600324416562&_=1600324417180
2021年02月08日
10 阅读
0 评论
0 点赞
2020-04-21
分享几个免费申请SSL证书的网站
SSL证书(SSL Certificates)为网站和移动应用(APP)提供HTTPS保护,对流量加密,防止数据被窃取。阿里云申请地址:https://www.aliyun.com/product/cas?source=5176.11533457&userCode=jdjc69nf证书类型:域名型(DV)证书品牌:Symantec(赛门铁克)域名类型:单域名有效期:1年申请数量:不限注:如果申请证书的域名是在阿里云注册的可以自动完成验证。FreeSSL申请地址:https://freessl.cn/证书类型:域名型(DV)证书品牌:TrustAsia(亚洲诚信)域名类型:双域名有效期:1年证书类型:域名型(DV)证书品牌:Let’s Encrypt域名类型:多域名通配符有效期:3个月申请数量:不限又拍云申请地址:https://console.upyun.com/register/?invite=B1O6StWXU证书类型:域名型(DV)证书品牌:TrustAsia(亚洲诚信)域名类型:单域名有效期:1年证书类型:域名型(DV)证书品牌:Let’s Encrypt域名类型:单域名有效期:可自动续签申请数量:不限腾讯云申请地址:https://cloud.tencent.com/act/cps/redirect?redirect=10019&cps_key=69aab81d20a9e10e5ad56107d5303535证书类型:域名型(DV)证书品牌:TrustAsia(亚洲诚信)域名类型:单域名有效期:1年申请数量:同一主域最多只能申请20张七牛云申请地址:https://portal.qiniu.com/signup?code=1hmfw4qfyxahe证书类型:域名型(DV)证书品牌:TrustAsia(亚洲诚信)域名类型:单域名有效期:1年申请数量:不限
2020年04月21日
2,870 阅读
2 评论
0 点赞
2020-04-20
锦衣盾・WEB防火墙
jxwaf (锦衣盾) 是一款基于 openresty (nginx+lua) 开发的下一代 web 应用防火墙,独创的业务逻辑防护引擎和机器学习引擎可以有效对业务安全风险进行防护,解决传统 WAF 无法对业务安全进行防护的痛点。内置的语义分析引擎配合机器学习引擎可以避免传统 WAF 规则叠加太多导致速度变慢的问题,同时增强检测精准性(低误报、低漏报)。
2020年04月20日
279 阅读
1 评论
0 点赞
2020-04-20
Nginx 防止 SQL 注入、XSS 攻击的实践配置方法
有的时候发现网站访问缓慢,甚至出现 504 错误,通过 top -i 命令查看服务器负载发现负载数值飙升到 3.2 之多了,并且持续时间越来越频繁直至持续升高的趋势,还以为是被攻击了,对来访 IP 进行了阈值限制后效果并不是很明显,CDN 服务里限制几个主要 IP 效果依然不是很明显,这时候意识到这是被恶意扫描攻击了应该。通过服务器 waf 的日志记录分析得出基本都是 SQL 注入、XSS 攻击范畴,这些攻击都绕过了 CDN 缓存规则直接回源请求,这就造成 PHP、MySQL 运算请求越来越多,服务器负载飙升就是这个原因造成的,在日志里可以看到几乎大部分都是 GET/POST 形式的请求,虽然 waf 都完美的识别和拦截了,但是因为 Nginx 层面应对措施,所以还是会对服务器负载形成一定的压力,于是在 Nginx 里也加入了防止 SQL 注入、XSS 攻击的配置,没有想到效果竟然出奇的好。将下面的 Nginx 配置文件代码放入到对应站点的.conf 配置文件 [server] 里,然后重启 Nginx 即可生效。 if ($request_method !~* GET|POST) { return 444; } #使用444错误代码可以更加减轻服务器负载压力。 #防止SQL注入 if ($query_string ~* (\$|'|--|[+|(%20)]union[+|(%20)]|[+|(%20)]insert[+|(%20)]|[+|(%20)]drop[+|(%20)]|[+|(%20)]truncate[+|(%20)]|[+|(%20)]update[+|(%20)]|[+|(%20)]from[+|(%20)]|[+|(%20)]grant[+|(%20)]|[+|(%20)]exec[+|(%20)]|[+|(%20)]where[+|(%20)]|[+|(%20)]select[+|(%20)]|[+|(%20)]and[+|(%20)]|[+|(%20)]or[+|(%20)]|[+|(%20)]count[+|(%20)]|[+|(%20)]exec[+|(%20)]|[+|(%20)]chr[+|(%20)]|[+|(%20)]mid[+|(%20)]|[+|(%20)]like[+|(%20)]|[+|(%20)]iframe[+|(%20)]|[\<|%3c]script[\>|%3e]|javascript|alert|webscan|dbappsecurity|style|confirm\(|innerhtml|innertext)(.*)$) { return 555; } if ($uri ~* (/~).*) { return 501; } if ($uri ~* (\\x.)) { return 501; } #防止SQL注入 if ($query_string ~* "[;'<>].*") { return 509; } if ($request_uri ~ " ") { return 509; } if ($request_uri ~ (\/\.+)) { return 509; } if ($request_uri ~ (\.+\/)) { return 509; } #if ($uri ~* (insert|select|delete|update|count|master|truncate|declare|exec|\*|\')(.*)$ ) { return 503; } #防止SQL注入 if ($request_uri ~* "(cost\()|(concat\()") { return 504; } if ($request_uri ~* "[+|(%20)]union[+|(%20)]") { return 504; } if ($request_uri ~* "[+|(%20)]and[+|(%20)]") { return 504; } if ($request_uri ~* "[+|(%20)]select[+|(%20)]") { return 504; } if ($request_uri ~* "[+|(%20)]or[+|(%20)]") { return 504; } if ($request_uri ~* "[+|(%20)]delete[+|(%20)]") { return 504; } if ($request_uri ~* "[+|(%20)]update[+|(%20)]") { return 504; } if ($request_uri ~* "[+|(%20)]insert[+|(%20)]") { return 504; } if ($query_string ~ "(<|%3C).*script.*(>|%3E)") { return 505; } if ($query_string ~ "GLOBALS(=|\[|\%[0-9A-Z]{0,2})") { return 505; } if ($query_string ~ "_REQUEST(=|\[|\%[0-9A-Z]{0,2})") { return 505; } if ($query_string ~ "proc/self/environ") { return 505; } if ($query_string ~ "mosConfig_[a-zA-Z_]{1,21}(=|\%3D)") { return 505; } if ($query_string ~ "base64_(en|de)code\(.*\)") { return 505; } if ($query_string ~ "[a-zA-Z0-9_]=http://") { return 506; } if ($query_string ~ "[a-zA-Z0-9_]=(\.\.//?)+") { return 506; } if ($query_string ~ "[a-zA-Z0-9_]=/([a-z0-9_.]//?)+") { return 506; } if ($query_string ~ "b(ultram|unicauca|valium|viagra|vicodin|xanax|ypxaieo)b") { return 507; } if ($query_string ~ "b(erections|hoodia|huronriveracres|impotence|levitra|libido)b") {return 507; } if ($query_string ~ "b(ambien|bluespill|cialis|cocaine|ejaculation|erectile)b") { return 507; } if ($query_string ~ "b(lipitor|phentermin|pro[sz]ac|sandyauer|tramadol|troyhamby)b") { return 507; } #这里大家根据自己情况添加删减上述判断参数,cURL、wget这类的屏蔽有点儿极端了,但要“宁可错杀一千,不可放过一个”。 if ($http_user_agent ~* YisouSpider|ApacheBench|WebBench|Jmeter|JoeDog|Havij|GetRight|TurnitinBot|GrabNet|masscan|mail2000|github|wget|curl|Java|python) { return 508; } #同上,大家根据自己站点实际情况来添加删减下面的屏蔽拦截参数。 if ($http_user_agent ~* "Go-Ahead-Got-It") { return 508; } if ($http_user_agent ~* "GetWeb!") { return 508; } if ($http_user_agent ~* "Go!Zilla") { return 508; } if ($http_user_agent ~* "Download Demon") { return 508; } if ($http_user_agent ~* "Indy Library") { return 508; } if ($http_user_agent ~* "libwww-perl") { return 508; } if ($http_user_agent ~* "Nmap Scripting Engine") { return 508; } if ($http_user_agent ~* "~17ce.com") { return 508; } if ($http_user_agent ~* "WebBench*") { return 508; } if ($http_user_agent ~* "spider") { return 508; } #这个会影响国内某些搜索引擎爬虫,比如:搜狗 #拦截各恶意请求的UA,可以通过分析站点日志文件或者waf日志作为参考配置。 if ($http_referer ~* 17ce.com) { return 509; } #拦截17ce.com站点测速节点的请求,所以明月一直都说这些测速网站的数据仅供参考不能当真的。 if ($http_referer ~* WebBench*") { return 509; } #拦截WebBench或者类似压力测试工具,其他工具只需要更换名称即可。经测试和体验,上述代码运行很稳定,结合服务器上的防火墙规则以及 waf 的拦截和屏蔽,目前站点都已经恢复正常,服务器负载也是正常范围。特意分享出来希望可以帮助到有需要的站长们!
2020年04月20日
258 阅读
0 评论
0 点赞
2020-04-20
浅谈常见的文件上传的检测方式与绕过方法
前言文件上传漏洞是我们平时渗透过程中经常利用的漏洞,利用文件上传我们可以直接得到 webshell,是非常直接的攻击方式。写这篇文章主要是想对常见的文件上传检测和绕过进行总结,同时练习文件上传 php 代码的编写。以下上传测试使用的 HTML 表单的代码为: <html> <head> <title>File Upload</title> <meta charset="utf-8"> </head> <body> <form action="upload.php" method="POST" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="1000000"> 选择文件: <input type="file" name="myfile"> <input type="submit" value="Upload"> </form> </body> </html>1.1 前端 JavaScript 检测前端一般都是使用 js 来限制我们的上传类型和文件大小,这里以 upload-labs Pass-01 的源码为例: function checkFile() { var file = document.getElementsByName('upload_file')[0].value; if (file == null || file == "") { alert("请选择要上传的文件!"); return false; } //定义允许上传的文件类型 var allow_ext = ".jpg|.png|.gif"; //提取上传文件的类型 var ext_name = file.substring(file.lastIndexOf(".")); //判断上传文件类型是否允许上传 if (allow_ext.indexOf(ext_name + "|") == -1) { var errMsg = "该文件不允许上传,请上传" + allow_ext + "类型的文件,当前文件类型为:" + ext_name; alert(errMsg); return false; }}对于前端的检测我们可以抓包来修改文件类型,也可以禁用掉 JavaScript。总之,只有前端的限制是非常不安全的,非常容易被绕过。2.1 后端检测文件类型2.1.1 检测 content-type后端代码大致为: <?php $allow_content_type = array("image/gif", "image/png", "image/jpeg");$path = "./uploads";$type = $_FILES["myfile"]["type"];if (!in_array($type, $allow_content_type)) { die("File type error!<br>");} else { $file = $path . '/' . $_FILES["myfile"]["name"]; if (move_uploaded_file($_FILES["myfile"]["tmp_name"], $file)) { echo 'Success!<br>'; } else { echo 'Error!<br>'; }} ?>绕过方法:抓包将 content-type 改为图片形式(即 'image/png' 等),即可成功上传2.1.2 检测文件头判断文件类型后端代码大致为: <?php $allow_mime = array("image/gif", "image/png", "image/jpeg");$imageinfo = getimagesize($_FILES["myfile"]["tmp_name"]);$path = "./uploads";if (!in_array($imageinfo['mime'], $allow_mime)) { die("File type error!<br>");} else { $file = $path . '/' . $_FILES["myfile"]["name"]; if (move_uploaded_file($_FILES["myfile"]["tmp_name"], $file)) { echo 'Success!<br>'; } else { echo 'Error!<br>'; }} ?>此时虽然检查的也是文件类型,但是是使用 getimagesize () 函数来获取文件的 MIME 类型,此时检测的不是数据包中的 content-type,而是图片的文件头,常见的图片文件头如下:gif(GIF89a) : 47 49 46 38 39 61jpg、jpeg : FF D8 FFpng : 89 50 4E 47 0D 0A绕过方法:当上传 php 文件时,可以使用 winhex、010editor 等十六进制处理工具,在数据最前面添加图片的文件头,从而绕过检测2.2 后端检测文件扩展名2.2.1 黑名单检测后端代码大致为: <?php // 实际情况中黑名单内数据会更多更全面$blacklist = array('php', 'asp', 'aspx', 'jsp');$path = "./uploads";$type = array_pop(explode('.', $_FILES['myfile']['name']));if (in_array(strtolower($type), $blacklist)) { die("File type errer!<br>");} else { $file = $path . '/' . $_FILES['myfile']['name']; if (move_uploaded_file($_FILES['myfile']['tmp_name'], $file)) { echo 'Success!<br>'; } else { echo 'Error!<br>'; }} ?>众所周知使用黑名单是非常不安全的,很多网站会使用扩展名黑名单来限制上传文件类型,有些甚至在判断时都不用 strtolower () 来处理,因此造成漏洞绕过方法:使用一些特殊扩展名来绕过(如 php 可以使用 php3、php4、php5 等来代替)在后端比较没有转换大小写处理时,使用大小写混淆(如将 php 改为 pHp 等)来绕过2.2.2 白名单检测大致代码如下,与黑名单检测没有太大差别: <?php $whitelist = array('png', 'jpg', 'jpeg', 'gif');$path = "./uploads";$type = array_pop(explode('.', $_FILES['myfile']['name']));if (!in_array(strtolower($type), $whitelist)) { die("File type errer!<br>");} else { $file = $path . '/' . $_FILES['myfile']['name']; if (move_uploaded_file($_FILES['myfile']['tmp_name'], $file)) { echo 'Success!<br>'; } else { echo 'Error!<br>'; }}白名单相对与黑名单就安全许多,要求只能是特定扩展名的文件才能上传,虽然我们无法从代码层面来绕过,但这样也不是绝对的安全,可以利用其他漏洞来绕过绕过方法:使用 %00 截断文件名来上传(后面会讲)如果目标还存在文件包含漏洞,那么就可以上传图片马再文件包含来拿 shell2.3 后端检测文件内容2.3.1 文件内容替换这种主要是将文件中的敏感字符替换掉,大致代码类似于下面这样: <?php $path = "./uploads";$content = file_get_contents($_FILES['myfile']['tmp_name']);$content = str_replace('?', '!', $content);$file = $path . '/' . $_FILES['myfile']['name'];if (move_uploaded_file($_FILES['myfile']['tmp_name'], $file)) { file_put_contents($file, $content); echo 'Success!<br>';} else { echo 'Error!<br>';} ?>此时如果我们要上传 php 的一句话 <?php @eval($_POST['shell']);?> 时,php 的语言标记中的?会被替换为!,这样一句话就不能被执行了绕过方法:主要还是要根据实际过滤的字符来判断,如果写死的话可能是没办法的(一般不会,因为还要兼顾图片上传)比如过滤掉问号,我们就可以使用 system('ls'); 这样的一句话。具体方法要看实际代码过滤了哪些字符。2.3.2 图片二次渲染我们以 upload-labs Pass-16 的源码为例: $is_upload = false; $msg = null; if (isset($_POST['submit'])){ // 获得上传文件的基本信息,文件名,类型,大小,临时文件路径 $filename = $_FILES['upload_file']['name']; $filetype = $_FILES['upload_file']['type']; $tmpname = $_FILES['upload_file']['tmp_name']; $target_path=UPLOAD_PATH.'/'.basename($filename); // 获得上传文件的扩展名 $fileext= substr(strrchr($filename,"."),1); //判断文件后缀与类型,合法才进行上传操作 if(($fileext == "jpg") && ($filetype=="image/jpeg")){ if(move_uploaded_file($tmpname,$target_path)){ //使用上传的图片生成新的图片 $im = imagecreatefromjpeg($target_path); if($im == false){ $msg = "该文件不是jpg格式的图片!"; @unlink($target_path); }else{ //给新图片指定文件名 srand(time()); $newfilename = strval(rand()).".jpg"; //显示二次渲染后的图片(使用用户上传图片生成的新图片) $img_path = UPLOAD_PATH.'/'.$newfilename; imagejpeg($im,$img_path); @unlink($target_path); $is_upload = true; } } else { $msg = "上传出错!"; } ...大致意思是后端调用了 php 的 GD 库,提取了文件中的图片数据,然后再重新渲染,这样图片中插入的恶意代码就会被过滤掉了我自己在测试时发现不管是直接修改文件头来制作的图片马,还是利用 copy 命令制作的图片马,都无法避免其中的一句话被过滤掉。而看了一篇文章发现其实要把一句话插入到图片数据中,这样经过渲染后这部分数据还是会保留下来。大家可以看一下作为参考:https://secgeek.net/bookfresh-vulnerability/3.1 解析漏洞及其他漏洞3.1.1 IIS 解析漏洞IIS6.0在 IIS6.0 中有两个很重要的 asp 解析漏洞:假设当前有一个名为 "xxx.asp" 的目录,那么该目录下的所有文件都将被作为 asp 文件解析假设上传一个名为 "test.asp;xxx.jpg" 时,该文件会被当做 asp 文件解析IIS7.5这个其实不能算 IIS 的洞,它其实是 php 的解析漏洞,这个漏洞利用条件是服务器在php.ini中将cgi.fix_pathinfo的值设置为1然后当我们访问服务器上任意一个文件时(如:http://test.com/a.jpg),当我们在 URL 后面添加.php(即:http://test.com/a.jpg/.php),那么文件a.jpg就将被作为php文件来解析3.1.2 Apache 解析漏洞利用低版本apache扩展名解析特性在了解这个解析漏洞之前,我们要首先了解apache和php的三种结合方式:Apache 和 php 三种结合方式:1.CGI2.Module3.FastCGI该解析漏洞只有在apache和php以Module方式结合时才存在,而且Apache还有一个特性:Apache 在解析文件时会以文件名从右向左解析,当最后一个扩展名无法识别时,就会向左查看是否有可以识别的文件名,如果没有的话就以配置中的默认文件类型来解析例如:a.php.xxx 因为 xxx 无法识别,而左边的 php 可识别,就会被解析为 php 文件CVE-2017-15715还有一个apache的解析漏洞就是CVE-2017-15715,这个漏洞利用方式就是上传一个文件名最后带有换行符 (只能是\x0A,如上传a.php,然后在burp中修改文件名为a.php\x0A),以此来绕过一些黑名单过滤具体的漏洞分析可以看 p 牛:https://www.leavesongs.com/PENETRATION/apache-cve-2017-15715-vulnerability.html3.1.3 %00 截断这个多数被利用在截断路径,利用的条件是:PHP < 5.3.4magic_quotes_gpc 关闭因为 0x00 是字符串的结束标志符,所以 php 在读取到 0x00 时就不会再往后读取,我们可以利用这些截断字符后面不需要的内容以upload-labs的Pass-12为例,源码如下: $is_upload = false; $msg = null; if(isset($_POST['submit'])){ $ext_arr = array('jpg','png','gif'); $file_ext = substr($_FILES['upload_file']['name'],strrpos($_FILES['upload_file']['name'],".")+1); if(in_array($file_ext,$ext_arr)){ $temp_file = $_FILES['upload_file']['tmp_name']; $img_path = $_POST['save_path']."/".rand(10, 99).date("YmdHis").".".$file_ext; if(move_uploaded_file($temp_file,$img_path)){ $is_upload = true; } else { $msg = '上传出错!'; } } else{ $msg = "只允许上传.jpg|.png|.gif类型文件!"; } }由于是白名单限制了上传文件类型,因此我们无法在文件名处做文章。但最终move_uploaded_file()的目标目录是我们可控的,我们可以将POST传入的save_path改为../upload/shell.php%00,这样后面的内容就会被截断掉,这就导致了任意文件上传还要注意的是 %00 是 url 编码,在以POST传参时应该使用burpsuite对其进行url decode,或者修改hex值为00;而当 GET 传参时因为浏览器会做一遍url decode,所以直接传%00即可。3.1.4 利用.htaccess 解析.htaccess 文件 (或者 "分布式配置文件"), 全称是 Hypertext Access (超文本入口)。提供了针对目录改变配置的方法,即,在一个特定的文档目录中放置一个包含一个或多个指令的文件,以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过 Apache 的 AllowOverride 指令来设置。利用.htaccess 的条件:Apache 中配置 AllowOverride All.htaccess 文件可以配置将特定的文件按规定的文件类型进行解析,可以用以下两种方式来配置: <FilesMatch "test"> SetHandler application/x-httpd-php </FilesMatch>这一种采用正则匹配,只要文件名为 test 的文件都将被作为 php 文件解析 AddType application/x-httpd-php .jpg第二种是将.jpg 文件都作为 php 文件解析这样我们如果能将.htaccess上传到服务器的话,就可以再根据我们自己设定的规则来解析上传的文件,以此来绕过上传过滤总结常见的文件上传的检测和绕过方式基本是以上几种。在实战或 CTF 比赛中往往是几种类型的结合,因此绕过也需要几种方式的结合。首先我认为最重要的是前期的信息收集,服务器的类型、版本,使用的脚本语言、版本,只要做到对这些很清楚后才能考虑之后能否利用一些如 %00 截断、服务器解析漏洞来进行文件上传。在测试时,一般我们都先要 fuzz 看一下检测是哪种类型,是前端还是后端?黑名单还是白名单?上传后的 shell 能否被成功执行?是否有文件内容的检测?如果是黑名单的话,就要尝试各种特殊文件名(php、Php、PHP、pht、php5、phtml),或者在扩展名后添加空格、::$DATA、. 等字符,再或者是尝试上传.htaccess如果是白名单,就要看是否可以使用 %00 截断,或者利用服务器的解析漏洞。如果真的过滤很死的话,不妨再找一下目标的文件包含漏洞,尝试利用文件包含来解析图片马。个人认为现在文件上传在代码层除了逻辑问题外已经很少有漏洞了,大多数情况下都是利用服务器解析漏洞等来 getshell,这篇文章也只是作为自己入门文件上传的总结。如果有错误,请各位师傅指正。
2020年04月20日
274 阅读
0 评论
0 点赞
2020-04-20
发起一次网络攻击要花多少钱?
如同正规商业经营一样,黑客也需要衡量运营成本和投资回报。令人唏嘘的是,近期德勤发布的一份新报告发现网络犯罪的成本非常低。公司消耗大量资金来保护他们的网络和资产免受威胁。卡巴斯基实验室发现,企业内的安全预算平均每年约为 900 万美元(约 6 千万元)。最重要的是,数据泄露会使公司损失数百万美元。然而,令人难以置信的是低价、便于使用的现成黑客工具使网络攻击的入门门槛变得越来越低。网络攻击比网络安全便宜攻击和防御的资金消耗是十分不对等的。黑客足以负担得起攻击消耗,但是企业或个人受害者的防御成本却要高得多。TOP10 VPN 估算每个人的整体数字身份成本,其中包含亚马逊、优步、Spotify、Gmail、Paypal、Twitter 甚至 GrubHub 和 match.com 等主流网站。如果不法分子想要所有信息,甚至花费不到 1000 美元即可获得。除了 PayPal 等在线购物或金融账户以外,其他所有数据价值都不到 100 美元。Armor 的黑市报告发现个人身份信息(PII)虽然价格昂贵,但在暗网上的每条记录仍不到 200 美元。Visa 和 Mastercard 信用卡信息每条记录 10 美元,甚至整个账户的银行信息也只值 1000 美元,即使所述账户最高可达 15,000 美元。在大多数情况下,旧数据只是免费附赠。这与对被盗数据公司的处罚形成鲜明对比。根据 IBM 最新的数据违规成本报告,每个记录损失的企业平均成本为 233 美元,在监管严格的行业中可能要高得多。Top10 VPN 的黑客工具价格指数发现恶意软件只需 45 美元,而有关如何构建攻击的教程只需 5 美元。其中少数情况时犯罪分子将被要求为任何单个组件支付超过 1,000 美元,用于零日攻击或用于拦截呼叫数据的模拟器花费将超过 28,000 美元。但是,购买单个恶意软件甚至是完整的网络钓鱼工具包还不足以发动攻击:攻击需要托管、分发渠道、混淆恶意软件、帐户检查等等。在一份新黑市生态系统的报告中这样写道:他们需要估算 “Pwnership” 的成本,Deloitte 不仅仅列出了零碎的成本,还要计算了运营的总成本。从恶意软件和键盘记录器到域名托管、代理、VPN、电子邮件分发、代码混淆等,不法分子才能发起针对企业的完整攻击。这种类型的大规模攻击行为背后的组织需要提供多层级服务。对于完成银行特洛伊木马类型的攻击行为,需要至少使用五到六个服务。网络攻击的成本是多少?该报告还发现暗网充斥着各种随时可用的服务,以满足黑客的个性化需求。需要一台受感染的服务器才能启动键盘记录式网络钓鱼攻击?想要运行远程访问木马活动?答案是:一切都很简单。以下案例可供参考:一项全面的网络钓鱼活动,包括托管、网络钓鱼套件:平均每月 500 美元,每月价格为 30 美元;信息窃取 / 键盘记录活动(恶意软件、托管和分发):平均 723 美元,价格低至 183 美元;勒索软件和远程访问特洛伊木马攻击:广告系列平均为 1,000 美元;银行特洛伊木马活动:初期支出约为 1,400 美元,但可能高达 3,500 美元。网络犯罪门槛越来越低报告中估计,即使是每月仅花费 34 美元的低端网络攻击也可以赚回 25,000 美元,而花费数千美元的更昂贵、复杂的攻击每月可以赚多达 100 万美元。与此同时,IBM 估计数据泄露企业的平均成本为 386 万美元。进入成本低、易部署和高回报意味着潜在的威胁参与者越来越不受技术水平的限制。德勤网络风险服务公司的负责人表示:将三年前的进入壁垒同现在相比,十分专业的攻击服务提供者确实不存在抑或才进入市场。犯罪分子进入壁垒非常低,他们可以非常轻松地访问不同的服务,并且很容易获得利润。在某些情况下大众只是受自己想象力的限制而已。与安全供应商领域非常相似,网络犯罪服务市场充斥着小型精品运营商。根据该报告,暗网是一个非常有效的地下经济,不法工具提供者专注于产品或服务,而非提高其技术熟练度。唯有真正专注于做事,这样才能使成本更低、工作量更少。他们需要在地下网络犯罪中建立最少的联系,为了达到这一目标,他们的出货量一般较少,因此也不太可能被关闭。不同的参与者提供不同等级的产品和服务。更便宜、不复杂的选择是可用的:一些勒索软件包在没有前期成本的情况下运营,他们选择分享利润,故而前期基本上可减少到零,但后续提供较少的回报,更有可能被防御者挫败,同时溢价服务也增加了成功机会和回报比率。通常威胁参与者最复杂的因素是将不同的组件拼接成一场完整的攻击。CISO 需要了解的有关网络犯罪市场的信息德勤回应道,廉价、简单的攻击不应该让 IT 团队过于担心。如果企业安全状态良好,大多数高达 100 美元的攻击类型都会受到大部分基本安全控制的防御。然后,企业需要担心哪些更高等级的威胁?需要深入了解的网络风险和攻击者可能感兴趣的数据类型又有哪些?这些攻击推动者以往发动攻击的原因又是什么呢?根据德勤发言人的说法,尽可能多地了解犯罪服务提供者和帮助安全研究人员使用它们对抗网络的威胁同样重要。大众无法确定小型攻击究竟存在怎样的威胁,因为企业还未把这些攻击工具同真实的网络犯罪行为相联系起来。如果我是公民社会组织的一员,我的情报小组将真正专注于这些支持服务中的每一项。想要知道那里的主机、所有代理、流量重定向服务、帐户检查器如何工作。我需要了解那里的所有DDoS服务,然后将这些事物与防御机制相结合起来。了解生态系统,了解这些服务提供者如何工作、组织防御和使用可视化工具量化数据。即使很难让犯罪分子成本升高,但是对于大多数安防人员来说可以降低企业数据吸引人的程度。举例来讲:查看帐户检查程序如何自动运行登录系统的凭据,然后找到阻止或降低其有效性的潜在方法。时间就是金钱,如果需要花费大量时间来实施攻击,那就等同于提高他们的成本。
2020年04月20日
595 阅读
1 评论
0 点赞