Skip to content

Melody有奥妙 Posts

HITCON 2016 WEB WRITEUP[2016.10.12已更新web500]

Posted in 每刻,知识分享

HITCON 2016 WEB writeup Are you rich && Are you rich2 这道题有两种解法,在token那里存在注入,可以注入得到flag,或者上网找一个大富豪的bitcoin账号,然后直接填进去就行了,这样两道题都能解出来。 Secure Posts 模板注入,{{config}},填到author那里即可。 Config {‘PREFERRED_URL_SCHEME’: ‘http’, ‘DEBUG’: False, ‘JSON_AS_ASCII’: True, ‘PROPAGATE_EXCEPTIONS’: None, ‘SESSION_COOKIE_SECURE’:…

LCTF 2016 WEB Writeup

Posted in 每刻,知识分享

WEB WEB50 签到题 首先登陆处有注入,报错盲打,猜了个表名和字段,就能得到密码。 登陆后要求你购买flag,抓包后修改flag数目为0,使用intruder爆破密码,即可得到最终flag WEB150 我控几不主我及几啦 这题现在访问不了,不过没啥好说的,sqlmap跑出来的 WEB200 睡过了 这题真是excited,看到key可以加这种有语病的句子,瞬间想到了前段时间的CVE,通过+号绕过正则过滤,通过伪造成员属性数目绕过wakeup方法。具体分析见http://paper.seebug.org/39/ 这样就能写一个文件获得webshell,进去后有open basedir的限制,在知识库上有一篇文章讲怎么绕过列目录的,在web根目录发现了flag(记得是) WEB250 苏打学姐的网站 Img.php通过正则过滤使你不能读源码,之前有一道一样的过滤可以绕过。 绕过方法见这篇文章:http://www.yqxiaojunjie.com/index.php/archives/27/ ps.txt了!得到下一个关口。 分析admin.php.txt可知,这是CBC翻转攻击,通过对已知的明文分组,再翻转特定的bit即可修改指定位。 对其中57和63位做修改即可。 <?php $enc=base64_decode(“cookie”);//一开始返回的cookie内容 $enc[57] = chr(ord($enc[57])…

鸡肋漏洞利用两则

Posted in 每刻,知识分享

放了好久的存稿了,慰藉长草的博客 仅仅存在一个php本地文件包含,并存在诸多限制的情况 这时候你可以读取的文件非常的有限,且url fopen wrappers被关闭的情况下,无法读取源码让人很头痛…感觉无法进行下一步,此时,可以利用文件包含去触发一个sigsegv。 php sigsegv信号的触发条件主要是溢出与非法内存访问,在sigsegv信号之后,php程序会异常终止。 我们要利用php程序的异常终止来切断一个正常的流程,我们想到了上传流程。 php可以接收上传文件,创建临时文件,经过相应的处理函数(move_uploaded_file())处理后,删除临时文件,最后退出php程序。 存在文件包含的地方不一定有move_uploaded_file(),但是上传文件一定会产生临时文件,我们如果能切断这个流程,让php在删除临时文件之前退出,我们也就能成功的向tmp目录下达成任意文件写入(具体默认临时文件目录随系统有所改变)。于是,一个鸡肋的本地文件包含就可以在最小条件下getshell。 那么如何触发sigsegv呢?我们构造一个溢出,递归包含自身,也就能中断正常的上传流程。 <?php include($_GET[‘file’]); ?> 从get参数中获取文件名,include进来,那么包含文件本身就会无限的去包含file参数,达到了我们的目的。 梳理一下步骤。 目标站点a.com/b.php的file参数存在lfi 构造上传页面为 <form enctype=”multipart/form-data” action=”http://a.com/b.php?file=b.php” METHOD=POST> <input name=”userfile” type=”file”>…

三个白帽代码审计之条条大路通罗马1

Posted in 每刻,知识分享

代码审计好难做,这几天做这些做的异常压抑,好在最后在v牛帮助下总算解决了,最终知道了自己不是常规思路。。。。mdzz,问了超威蓝猫,orz!!! index.php define (‘PATH_WEB’, dirname(__FILE__).’/’); include_once ‘init.php’; if($_M[‘form’][‘class’]){ include PATH_WEB . $_M[‘form’][‘class’].’.php’; } if($_M[‘form’][‘formname’] || $_FILES[‘file’][‘name’]){ $upfile = new upfile(); $upfile->set(‘savepath’, ”); $upfile->set(‘is_rename’, $_M[‘form’][‘is_rename’]); $back…

常见web源码泄漏解析

Posted in 每刻,知识分享

web题目中源码泄露还是比较常见的,在什么时候需要去考虑源码泄漏呢,一是题目中所有猜测的可能存在漏洞的点都确认应该没有漏洞的时候,比如说在有一次比赛中题目中给了个登录框…后来确认是静态的页面,那这个时候就必须考虑源码泄露了。二是已经确认了解题思路,但是对漏洞的测试非常难以进行的,比如说这次bctf,xss在我们这里没有回显,而管理的页面也看不到,每次都要等到robot看过了我们提交的页面之后才能确认xss是否成功,这是非常麻烦的,而主办方也不希望因为自己的机器人出问题而影响大家漏洞的测试,这次比赛中robot屡次出现问题…有源码泄漏的可能性还是很高的。为什么要强调这一点,这一点其实只有在比赛中才会比较有用,因为一道题没有人做出来的话,才有放hint的可能性,如果你的思路比较跳,你就容易在这样的比赛中获得优势。本次bctf因为第二道homework太久没人做出来才放的hint,如果说很早就有人发现了源码泄露,那么这道题估计注定只有一个人能做出来了。本篇将对网络上常见的源码泄露做些分析,浅薄之见还望多多包涵。 Bitkeeper(上古神器) CVS Subversion(SVN) Git Mercurial   Bitkeeper 这真的是上古神器了,我后面要介绍的其他几款工具推出的时候都是要号称取代bitkeeper… 该款软件如何安装的说明,上面附带有把试用版本发送到自己的邮箱…:http://www.bitkeeper.com/installation.instructions 测试的目录 http://url/.bk 403 Forbidden 取回源码的命令 bk clone http://url/name dir 这个命令的意思就是把远端一个名为name的repo clone到本地名为dir的目录下。 查看所有的改变的命令,转到download的目录 bk changes CVS…

民族仇恨还能有多深?——记阿尔巴尼亚病毒的起源

Posted in 未分类

在知乎上看到了个非洲小国的‘电脑病毒’: 你好哦,我是一段来自阿尔巴尼亚的电脑病毒,因为我们这里科技水平有限,其实我什么也做不了。。。能拜托你删除电脑的文件,然后把我转发给所有朋友吗?谢谢咯。 实在是很好奇这是怎么来的,通过@蒋怀仁的回答的评论,我找到了条链接,开始考证这个病毒的来由。渣渣英文水平查资料实在是太可怜了,翻译了一部分感觉还是不太对,有些不好直译只好多个资料交叉着猜测了,如有不当请务必指正。   塞尔维亚-阿尔巴尼亚黑客大战。 一个希腊裔美国人在阿尔巴尼亚的网络上展示了一个地图,其中将科索沃视为阿尔巴尼亚的领土,还包括了马其顿西部和黑山南部。 在BBC的采访中,来自塞尔维亚的黑客组织“BlackHand”的代表宣称:“我们会持续努力在互联网上清除阿尔巴尼亚人的蠢话,现在我们计划先干掉一个北约的网站,首先我们将攻击www.kosova.com(科索沃的网站)”,该网站在1999年4月被攻击,再然后阿尔巴尼亚地区最火热的网站“科索沃媒体在线”也被攻击。 这也是前文“Black Hand”所说的“阿尔巴尼亚人的蠢话”。 之后黑客大战迅速扩张,在这各种各样的攻击手段中,甚至有一种病毒,以非常滑稽的方式波及到了西方英语国家,无数封电子邮件被发往世界各地,邮件内容如下: 主题:“Albanian Virus(阿尔巴尼亚病毒)” “ Dear receiver: You have just received anAlbanian virus. Since we are not…

C语言学习笔记(二)

Posted in 每刻,知识分享

用CLION时出现的问题 似乎是CMakeList.txt里的语言选错了,把cpp改成c99就好了。 cmake_minimum_required(VERSION 3.3) project(clearn) set字符串和格式化输入输出(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -std=c99”) set(SOURCE_FILES float_calculate.c) add_executable(clearn ${SOURCE_FILES}) 一开始${CMAKE_CXX_FLAGS} -std=c99的值是c++11。。结果半天编译不出来orz 字符串和格式化输入输出 1.scanf是以空格为单位划分变量的,所以如果输入中存在空格,空格后的内容将被赋给下一个变量。 所以今天做strlen的实验会发生神奇的现象。 #include <stdio.h> #include <string.h> int main(){ char name[40];…

C语言学习笔记(一)

Posted in 每刻,知识分享

实际上已经积攒了相当多的笔记了。。不过发大长篇似乎不太好? 浮点数有效数字问题 // // Created by Melody on 16-1-28. // #include int main(){ float a,b; b=2.0e20+1.0; a=b-2.0e20; printf(“%f\n”,a); return 0; } 程序输出结果极其诡异 4008175468544.000000 从小数点就可以看出来,C float能处理的有效数字为六位。而b后所接e为20,注定了计算会出错。…

PHP文字写入图片

Posted in 未分类

说起来上次更新是大概半个月以前..我好懒啊。 这次是因为突然想弄一个图片,上面显示从hitokoto调用来的文字。大概思路是这样的。 首先从hitokoto调用,curl javascript的API,得到一串js,然后先用strip_tags()函数去除<span>,然后再用trim()函数去除其余的多余字符。 然后就有了代码,一开始并不是用curl获取的,是用get_file_contents()好像是这个..不过最后截取到中文字符就断了,所以后来用curl。 后来又出现了问题,是最后截取完成的字符串直接输出是没有问题的,但是如果生成图片的话就是乱码,后来卜卜说加上字体,于是用了微软雅黑,结果变成了漂亮的乱码… 资料翻了个遍,然后编码换来换去,最后才发现编码不应该换成utf-8,而是应该换成gb2312…我有罪..浪费了那么长时间。 最后加了缓存头,代码完成。下面上代码 <?php $url = “http://api.hitokoto.us/rand?encode=js&charset=utf-8″; $ch = curl_init(); $timeout = 5; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch,…