pwnable.kr_思路

写在前面

学二进制、pwn,pwnable.kr是一个必须要刷的网站,所以开一篇文章专门记录自己的刷题历程

其实网上很多都有,但我这里主要记录各题的思路,不写详细的解法,也主要用于自己的归纳总结,do it yourself,才能学到更多

对我所说的思路有不了解或有不同的看法的,欢迎email我 lin.giglf@gmail.com 一起讨论

不定期更新

Blog update!

终于颓颓颓颓了很长一段时间,开始修我的blog

这里说一下我blog的更新的地方吧


博客依然由hexo+freemind主题建成

  1. 图床修复:采用hexo-asset-image插件,图片直接同步到repo中,在pages上直接引用

  2. 留言系统修复:多说关闭了,只能换一个,disqus以前用过,但是登陆方式有限制,对国内用户不太友好,后来找到一个叫livere(来必力)的,看着还挺好用,就换成这个了。

  3. 从前博客挂在github pages上,用的http://gifish.tk 的域名。但由于github禁了百度的爬虫,导致百度会搜不到,现在同步挂到了github pages和coding.net pages上,让百度可以搜到博客的内容,不过试了下,似乎刚配置好百度的爬虫还没更新。然后更新域名为http://blog.2bsticker.cn ,国外线路解析到github,国内线路解析到coding.net,试了试github page不能设置多个CNAME记录,于是吧gifish.tk url重定向到了github page上。

    综上,目前你可以通过以下链接访问我的博客

    以后想注册个个人长期使用的域名,日后再更新。

  4. 添加hexo-wordcount插件,修改侧边栏的样式,每篇文章可显示字数和预计阅读时间。

  5. 添加小蒜子阅读数量统计,显示于侧边栏。

  6. 添加rss订阅链接。

  7. freemind的样式更改为readable-inverse

  8. 更新About Me面页

  9. 更新了freemind的字体包,添加了google analyse和baidu统计,这个主要用于自己查看数据用的。


依然存在问题

  1. hexo-math插件出问题,怎么配置都没成功,数学公式不能正常显示(还好博客还没有很多公式)
  2. https配置未成功,配置自定义域名后,coding.net和github都要识别域名的所有权才能给站点开启https,其中coding.net用的是Let’s Encrpty的认证,尝试了很多种,尚未配置成功。

资料参考

http://masikkk.com/tags/Hexo/

有些文章感觉挺没意思的,不过写了就不删了,以后看心情再写些有意义点的文章23333

About recently

仔细看一下,上一篇特么是4月份的事了,现在9月份,已近5个月没有更新过了

在这五个月中,本来有想过写东西的,但由于一直很烦(对,其实也不算太忙)

烦于找实习,实习失利又去考虑找读研导师,一直折腾来折腾去,各种破事。


如果说大三上是因为各种课程各种实验堆积搞得自己很忙很烦,那么大三下就是各种破事堆积搞得自己很烦

每天都很烦!

还好,这段可怕的日子已经过去了,我也丝毫不留恋,如今仅仅会感叹一下时间过得真快,现在学校又都是军训的萌新,不止一次感叹年轻真好

在这五个月,有几次我都想更些blog,不过一直没写,没组织,现在考虑下是不是应该补上。

其中包括:

  1. DDCTF前几题的wp
  2. 一次pwnhub关于Android的逆向(没多大意思,有点不打算写了)
  3. 最近一次pwnhub关于pyc的逆向

还有些想写的,但似乎忘了,果然应该及时写的= =

然后,最近想要从零开始写一个小型的操作系统内核,正在肝文档,抄代码,会及时记下这个过程的


再就是,关于这个博客的修整

首先的问题是:

  1. 以前的图床收费,图片全挂了,需要修复
  2. 留言挂了,等待修复
  3. 以前hexo的配置有问题,似乎ban了某些搜索引擎,待修复

所以计划是:

  1. 修复以前的图片
  2. 修复留言系统
  3. 站点重新配置,修改一下样式之类的
  4. 补一下文章。。。
  5. 考虑配置个https

就酱


但愿人生能往自己喜欢的方向发展,丰富多彩。

但是没钱是个大问题

Android签名原理介绍(2)--schemev2

接上一篇,接下来介绍7.0后新增的v2签名认证方式

APK Signature Scheme v2

与v1方式签名不同的是,v2的签名是对整个文件的一种签名方式

直接从字节码上对apk进行签名,不必遍历每个入口进行计算签名

并且每一个改动都会使得签名失败,因此其提高了签名认证的速度和签名保护的安全性

但是有一点得注意的是,v2签名仅用在7.0以上的系统中,因为只有7.0以上的系统有有关v2签名认证的代码

因此为了适配早前的系统,正常还是采用v1签名,或是v1v2签名并存

在后面的代码可以看出来,7.0以上的系统会先进行v2签名的认证,若没检测到v2签名信息,则再进行v1的方法

但是由于一些应用需要打包渠道包,每次修改再编译再签名实在太耗时,大部分会选择关闭v2签名

在build Gradle中添加

v2SigningEnabled false

因为在v1签名中,META-INF中的内容是不会检测的,这使得在打包渠道包时不需要重复重新签名

渠道包指的是在各大应用市场,发布的apk包的清单文件中,某个meta-data标签下,配置的value不一样,这个标签的作用就是用来区分是哪个市场的

Android签名原理介绍(1)--schemev1

前言

因为某些不知名的原因,让我感觉很有必要学习一下apk签名的方式,于是。。。便有了这篇

(真的好久没写了哇,近期烦心事真的太多了)

我在网上搜了各种大大小小关于apk签名的文章,但始终没有能让我满意的,而且也感觉一直缺乏一篇能从字节上分析对比新旧两种签名方式的文章,so……

传统的安卓签名方式是通过jar的签名方式实现的,在apk包下,会有一个META-INF的文件夹,META-INF的文件夹下,会有MANIFEST.MF CERT.SF CERT.RSA三个文件,均是用于apk签名认证的。

而在Android7.0后,新增了一个APK Signature Scheme v2的签名方式,更为强效。而原来的签名方式则是 JAR-signed APK verification (v1 scheme)

详细可看官方的文档

https://source.android.com/security/apksigning/v2#v1-verification

各种编码区别及内存映射

整件事起因是一个程序(这条死咸鱼还欠着两篇文章没有写)

室友问道为啥一个

1
2
String str = "中";
str.getBytes().length;

结果是3,而不是我们当时常见的一个中文对应2字节

本质上的原因是因为他编辑器用了utf-8编码

后来又看到这么一段话

“计算机内存中,统一使用Unicode编码,需要保存或者传输时,转换成UTF8编码。”

然后我就懵逼了

对于编码方面的知识我的理解是混乱的,因此写篇blog理清一下思路

2016minilctf-Forensics500-Angel Beats!

0x00 前言

mini-lctf是我们校内的一个小型ctf比赛,在2016年12月初持续一周……

对,大家都注意到了现在马上到2月了233333,新年快乐~

嗯,因为当时这题并没有做出来

马格鸡虽然我太菜然而还是ak了入门级的mobile和re,还排名第五(因为dalao们都是出题人23333)

然而因为我单挑没有带学弟玩居然不给我奖品,好气啊!

赛后wp里re和mobile我还是写的比较详细的,然而这时回老家过年没网,迟点改改结合出题人wp再发

Ubuntu的apache2配置PHP不能运行问题

好久没写过了,在总算考完试并且获得一堆烂成绩后,是时候要回归到学习自己的兴趣点

并且填补一下基础

首先记录一下这个问题吧

Ubuntu中配置好apache2后php代码没执行

首先我是准备在虚拟机本地搭个sqli-labs来学习sql injection

因为在之前也搭过,所以应该没什么大问题

结果,就出现了一开始点setup databases时没有反应,即没有任何输出,但其他html元素均能正常显示

我这里配置是

ubuntu gnome 15.10

php5

apache2

mysql

简单来说,就是PHP代码根本就没有运行

此时查看网页源码也能看到php代码,其实还有另外一种情况是网页源码中根本就没有显示php代码

分类讨论下

ps:因为我没有学过多少web的内容,所以以下一些概念性的解释不一定正确,最好自己去搜一下,倘若有错误,还请指出。

  1. 网页源码根本看不到PHP代码

    这里我猜测是因为lamp没有装完整

    首先,php要装上php-cgi,CGICommon Gateway Interface,通过这个借口,php程序可以对服务器和客户端交换信息做一些事情

    另外,还有php-cli,这个是用于在命令行运行php脚本的

    还有php-gd库,用于处理图像。在网站上GD库通常用来生成缩略图,或者用来对图片加水印,或者用来生成汉字验证码,或者对网站数据生成报表等。

    另外,要链接数据库,还要装上相应的php的数据库支持,例如php-mysql

    倘若还不能解决,可以参考一下这篇解答

    http://stackoverflow.com/questions/3555681/why-are-my-php-files-showing-as-plain-text

    You’ll need to add this to your server configuration:

    1
    AddType application/x-httpd-php .php

    that is assuming you have installed php properly, which may not be the case since it doesn’t work where it normally would immediately after installing.

    It is entirely possible that you’ll also have to add the php so/dll to your apache config using a LoadModule directive (usually in httpd.conf)

  2. 网页源码中能看到PHP代码

    这个就可以参考这篇解答了

    http://askubuntu.com/questions/451708/php-script-not-executing-on-apache-server

    Typing:

    1
    sudo apt-get install apache2 php5 libapache2-mod-php5

    will install everything you need and will start the apache server with support for PHP.

    To verify that the php module is loaded, type:

    1
    a2query -m php5

    if not enabled, then load with:

    1
    sudo a2enmod php5

    and restart apache:

    1
    sudo service apache2 restart

    Update for php7.0, tested on Ubuntu 16.04 and 16.10

    Thanks to the comments, I update the answer for php7.

    Install:

    1
    sudo apt-get install apache2 php7.0 libapache2-mod-php7.0 

    Verify:

    1
    a2query -m php7.0

    Load:

    1
    sudo a2enmod php7.0

    Restart apache:

    1
    sudo service apache2 restart

    这个原因似乎是因为apache安装后默认还缺一个php的支持库

    因为我就是这个原因,按照上面安装了libapache2-mod-php5后,嗨呀,一切正常了

在配置过程中,apache2的默认根目录是/var/www/html,并不是以前的/var/www,当然,这个可以到配置文件中进行设置。

为了测试php代码是否正常执行,可以通过最简单的一个php脚本测试

1
2
3
<?php
phpinfo();
>

因为我并没有学过php,对于web服务器的配置也一知半解,所以在这个过程耗费了我好多的时间

不过,感谢网上各种大牛的帮助,也是解决了这个问题。


假期别颓啊喂,好好学习!!!
,