"LandGrey" 的文章

不,怀想;是,青春

作者: LandGrey ●   创建时间: 2018年6月14日 01:37 ●   标签:   #分享,   #思考

从阶梯教室出来,突然不知道该往哪里走,看到图书馆灯火通明,就不自觉的要往图书馆的方向走,然后好像别人指引似的,浏览到一本书《本性孤独》。有趣的是作者根本一点名气也没有,而我却从中看到了自己的影子。 三毛说:”心之何如,有似万丈迷津,遥亘千里,其中并无舟子可以渡人,除了自渡,他人爱莫能助。”突然回想到那些时光,那些曾经让我想逃避,让我厌恶的时光。 初中最为致命。在学校中,我脑子里面除了学习,似乎再无其它 东西。那时的自己也最为强大,强大到可以主观上屏蔽一切影响我学习书本内容的所有东西。可以忽视教室里所有的人,想象着只有自己一个人在一个独立的空间,谁都无法影响到我。仍书、吵闹、晃来晃去的手机,在我眼中就是空气一般的存在。那时冬天早上,天还没有亮,可以看见夜空的星星。我洗头就是直接用凉的自来水冲头,出宿舍门不久,头发都冻成了冰渣,一般都是等完了冰渣,再用手直接把头上的冰渣都拨掉。出去在小摊上买点东西吃,然后趴在教室的栏杆上仰望下天空不过3秒,就回到教室中,一人边吃东西,边背书。这样的结果是,现在仍然具有早上凉水冲头的技能。那时,脑子一根筋的我错过了很多美好的事情。也是那时独特的缺憾。 如此,我梦想着逃避这种生活,当然,慢慢的,我不再如此单调的生活,只因我不想再错过些那时本应该发生的美好的事情。但是,慢慢的,再也找不回那时的感觉。自己也试图找寻过原因,但最终还是欺骗自己说,人长大了,总归是要变一些的,怎么能找回以前的感觉呢? 另我惊讶的是,我今天确实找到了,一种在不知下一步往何处去时的深沉的思考引我找到一本书,然后看到了多年前寻找的问题的答案。 本来以为这世上的人只会走两条路:一条是按照条条杠杠,别人制定的规矩,跟着大众走;一条是主观的绝对的自由 ,跟着自己的心走。可是,我突然从书中指引的回忆中看到我在初中时走的另一条道路:就只是往前走,脚踏在自己的心上,心贴地面。这就是答案,原来一直跟着自己的心走,可是心在胸膛,这个大家都认为的再正常不过的位置。心呆在胸膛久了,就浮到空中了,没有原来的生气。 一直想不通为什么总想找到那段曾让我逃避的时光,那让我怀想到难受的时光。原来,那段时光给了我人生的第三条路。现在,抛却所有的理所当然和麻木,回到路上,青春洋溢。 作于 2015-10-23

更多 →

20行与200行代码批量获得网站标题-反思平庸与技术精进

作者: LandGrey ●   创建时间: 2018年6月8日 22:43 ●   标签:   #分享,   #思考

一. 20行代码临时任务,需要自动化收集大概文本中指定的100多个域名的网站标题(title)。这种以前也做过的简单任务,自己操作起来可以说是驾轻就熟了。花个两分钟,写个脚本,大概20行代码如下:#!/usr/bin/env python# coding:utf-8#import reimport requestsheaders = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063",}def poc(url): try: req = requests.get(url, headers=headers, timeout=15) title = re.findall("<title>(.*?)</title>", req.text, re.I | re.M) if title: return url + " " + title[0] else: return False except: return False使用POC-T 框架调用以上代码,就可以批量获取网站title了。使用Python脚本+框架的方式,可以简单快速的完成任务。但是实际上,操作起来最多只能获取到大概60%左右的网站标题。剩下的怎么办?还是手工一个个打开网页看标题……二. 问题所在批量获得网站Title这个编写脚本的技术工作,自己以前在渗透测试中,也做过很多次。要是有人问我"怎么批量获取网站的标题",我心里可能会嘲笑问我的人"这么简单的事都不会"。但是到了真正我来完成批量获取网站标题的任务时,祭出的20行代码却只能获取到60%左右的网站标题,剩下的大量不能正常获取的网站标题,还得人工一个一个的去看。浪费大量的精力去做本来可以很好的利用自动化方式解决的事情,让我感到十分羞愧。20行代码存在的主要问题,其实自己也大概清楚是怎么回事:编码处理不当。因为各种环节问题,一些中文标题解码错误,不能正确获得;不少网站存在首页跳转,程序获取不到跳转地址,自然拿不到标题;各种其它细节处理与疏于考虑的问题但自己在批量获取网站标题这个工作上,平庸到可以说是"怎么批量获取网站标题"都不会的人。最终应该嘲笑的是自己长久以来对平庸技术的满足与追求更加精进技术需求的漠视。三. 200行代码知道了问题所在,我就下决心要解决长期以来的对此问题的漠视,做个会"批量获取网站标题"的人。果然,写出准确率很高的批量获取网站Title的代码,要考虑并处理很多种情况,包括:编码问题。中文、UTF-8及Unicoded等转换。全面考虑各种首页跳转的情况。网站跳转代码的正则匹配表达式的书写考虑要全面。HTTPS协议网站请求相关问题。匹配网站标题的正则表达式的正确书写。Js代码写网站标题的情况。HTML实体编码的网站标题。中间包含换行、Tab键等空白字符标题的处理。网站请求错误重试、延时、网页自动跳转、超时时间、headers等考虑。获取不到网站Title的原因要显示出来其它当然,目前代码可能还是有不完善或者考虑不到的地方,一些较少遇到的情况会人为忽略。比如有的网站首页会以JavaScript ...

更多 →

关于PHP/JSP/ASP的一些Webshell检测绕过研究

作者: LandGrey ●   创建时间: 2018年5月27日 17:41 ●   标签:   #渗透测试

不再单独搬砖了,请去下列地址去查看:Github文章和Webshell合集 :webshell-detect-bypass先知社区:php一句话木马检测绕过研究利用Java反射和类加载机制绕过JSP后门检测构造免杀的asp一句话木马

更多 →

隙语青青

作者: LandGrey ●   创建时间: 2018年4月24日 18:58 ●   标签:   #诗词

2015年1月20日首发于QQ空间日志,个人原创15首短文现代诗,如果能够算得上的话。在大学生涯接近尾声之际,用以凭吊我的青葱岁月,灼灼芳华。诗的飞非要去思考让灯光升华虚无的思维为何睁开眼遍历已苍白黯淡的笑颜默默的人 手上端着叫嚣的机器静静的心 臣服于某个教导轨迹脚下是洁净的但早已感触不了土地的深沉眼睛是光明的却寻不到夜幕中最亮的银星忙碌于世间最可悲的是无法用错误的视角闪触到正确的眼睛冷热激动的烟火跃上天空即使远方的黄昏依然意犹未尽乡的墓月辉钉住了魂亲爱的故乡我不离开风光在没有黑暗的角落风肆意飞你我伴你看你笑你你笑愉悦的喉咙熔化的空气单恋安静的湖面给我你的波澜云风你摸够了吗铜匙金锁让我来抚平你的伤口青春绿色的芭蕉顶风伸展春在风去夜的市黑色的湖面举托起一排燃烧的火柴微风无烟归水滴即使升华必将堕入土地往事这棵秃树也曾嫩芽满枝邂逅一只翩跹的蝴蝶掠过波澜不惊的湖面霎时涟漪泛泛怎可平静你舞曲我漾波背影夕阳拉长回忆你的泪水攻占我走过的土地深处你 不能从内心诉说春与秋吹了灯便是 处处 深深

更多 →

Java代码审计-铁人下载系统

作者: LandGrey ●   创建时间: 2018年3月11日 13:11 ●   标签:   #分享,   #代码审计

0x00: 简介初学java代码审计,跟着表哥们脚步,走一遍审计流程,就选了个没有使用Java框架的java系统,作为入门。 0x01: 目的熟悉代码审计流程,寻找漏洞的思路,入门记录。 0x02: 准备工作为了验证审计出的漏洞效果,还是要搭建起来系统,不然空说无凭。为了方便,使用JspStudy 2016一体化环境,选择tomcat 8.0,jdk 1.8搭建。查看代码使用IDEA,当然,也可以用jd-gui,反编译class,不过IDEA自动就反编译了,比较方便。 值得注意的是,使用系统自带的安装功能搭建后,打开页面报错,事后想起来可能是自动导入sql文件的路径程序中写死了,和自己部署时根目录位置不一样导致的。 再次通过install/index.html页面重新安装,则显示数据库已经安装。原因是WEB-INF/classes/liuxing_db.properties中的db_an=yes变成了db_an=no,表示数据库已经安装,不会再次安装。 最后发现使用安装提示里的第二种手工安装方法可以正常安装系统,人工导入数据库数据就行了。 为了审计代码时全局搜索方便,可以使用jad批量反编译class文件,使用命令如: jad -r -d /path/to/store/java -s java -8 /path/to/classes/files/**/*.class 最后,我将反编译出来的java文件,统一存放在了WEB-INF/java目录下,和class文件的原始目录WEB-INF/classes目录相对应。 0x03:发现漏洞非框架的代码审计,按照前台——后台,严重——低危,非交互——需交互,跟随代码流程尽量发现高危和易利用漏洞类型为主。 一:重安装漏洞像在0x02中说的一样,虽然我使用系统自带的安装功能失败了,但是db_an参数变成了no,虽然/install目录的重新安装页面没删除,但确实使用系统自带的安装功能不存在重新安装漏洞。 跟随/install/index.html页面,找到install.jsp文件,再根据form action,找到install_setup.jsp页面 再根据install_setup.jsp页面上的import语句 import="liuxing.util.Install,java.util.*" 找到安装的主要逻辑源码,在WEB-INF/java/liuxing/util/Install.java中,安装时会判断db_an的值,yes可以安装,no不安装;安装完后会把值置为no,虽然install页面没删除,但是已经不能够再次安装了。 所以,当使用系统自带的install页面安装系统时,不存在重安装漏洞;如果使用手工导入sql文件安装系统,自己又没有把db_an的值写成no,没删除install目录文件时,存在重安装漏洞。 二. SQL注入漏洞首先尝试搜索功能,进入so.jsp,发现将搜索的参数值传入Ruanjianguanli的so方法中 进入WEB-INF/java/liuxing/guanli/Ruanjianguanli.java文件中,找到so方法;发现是调用了ruanjianDao.so()函数, ruanjianDao是什么呢?在Ruanjianguanli类的构造函数里,可以找到,ruanjianDao是RuanjianMySQL的一个实例,那么再接着往下跟 然后打开WEB-INF/java/liuxing/dao/RuanjianMySQL.java文件,搜索so方法,并发现最终是采用预编译来执行数据库操作,这里不存在SQL注入漏洞。 public pageModel so(int pageNo, int pageSize, String tiaojian, int lei, String name) 可想而知,有一处用了预编译,说明就有很多处用了预编译方式来执行SQL语句,基本都没有SQL注入漏洞。然后全局搜索createStatement关键字,看看有没有用拼接的SQL语句的。 如上图,最后也发现几个可以注入的地方,但是都需要登录后台,在delete语句中,可以用时间盲注,比如: delete ...

更多 →
<