首页
社区
课程
招聘
[原创] 某霸开料软件web验证
发表于: 2022-3-1 19:21 5152

[原创] 某霸开料软件web验证

2022-3-1 19:21
5152

背景说明:

朋友遇到一个蛮好用的软件,但是需要购买使用,叫我帮他看看.
潜水论坛许久,总要出来和大家交流交流. 借此机会献丑献丑,都是很简单的,各位不要笑话我.

使用工具:

Charles
python

分析过程:

既然是网络验证,那就上工具试试看.Charles 抓包走起, 该软件网络相关部分走的是同一个web接口,那感觉事情会变得简单了

 

随便来个账号密码试试看

 

抓包内容是这样的

 

这...

 

目测这个 -1000就是关键数据
在Charles上面试一下重写数据 , 在 工具 --> 重写 ,启用重写功能. 把这-1000改 30 看看

 

再次登陆试试看.

编写工具

python脚本主要做了2件事情.

  1. 修改host文件 把此网址指向本地
  2. 遇到登陆动作改写内容,其他内容继续向他的服务器请求即可
1
2
3
4
5
6
7
8
9
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
import sys
import locale
import http.server
import socketserver
import flask,json
import requests
from flask.globals import request
import winHelp
import hostsHelp
 
#获取管理员权限
winHelp.winHelp.getPower()
 
server=flask.Flask(__name__)
# 设置域名名称
server.config['SERVER_NAME'] = 'www.renbayouhua.com'
 
@server.route('/')
def index():
    return 'Index Page'
 
@server.route('/Service.asmx', methods=['GET', 'POST'])
def Service():
    req = request
    print(req.headers)
    print(str( req.get_data()))
 
    #121.40.173.95 真实地址
    rep = requests.post(url="http://121.40.173.95/Service.asmx",data=req.get_data(),headers = req.headers)
    rep_Body = rep.text
    print ("动作:",req.headers["Soapaction"])
    if req.headers["Soapaction"].find("http://tempuri.org/dengluxin")!= -1:
        rep_Body = rep_Body.replace("-1000", "1000")
        print("返回结果:",rep_Body)
    return rep_Body,rep.status_code,[("Content-Type","text/xml; charset=utf-8")]
 
if __name__ == '__main__':
    print(hostsHelp.writeHost(["#renbaJihack","127.0.0.1    www.renbayouhua.com"]))
    server.run(port=80,debug=True)

技术比较菜.就用这种方式来实现.哈哈,大家见笑了.重在分享.
技术交流,如有侵权,请联系我删除此帖


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 3076
活跃值: (3634)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这个确实方便
2022-3-1 20:49
0
雪    币: 7527
活跃值: (1181)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
照这么操作,gerenban 可能都能改为别的版本
2022-3-2 02:12
0
游客
登录 | 注册 方可回帖
返回
//