Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

定时的设置以及仅 app 可购买场次 ticketId 的获取 #5

Closed
oneeeeeeeeeee opened this issue May 6, 2022 · 24 comments
Closed

Comments

@oneeeeeeeeeee
Copy link
Contributor

oneeeeeeeeeee commented May 6, 2022

大大好,我想问一下如何调用接口。已经看了ISSUE#3,完成了登录找到了ticketid
然后不知道接下去要怎么做了(我是弱鸡[捂脸])

@oneeeeeeeeeee oneeeeeeeeeee changed the title 还是获取不到ticketid,不懂怎么调用接口 还是不懂怎么调用接口 May 6, 2022
@oneeeeeeeeeee
Copy link
Contributor Author

尝试了一次 按您#3中的方式
抓取到了tickeid编辑进 http://127.0.0.1:9997/buy?event=111&ticketId=222 输入浏览器会进入抢票,但是不是很懂怎么设置定时,是需要在app.py里面编辑填入吗?
另外一个问题是如果秀动不允许网页购票,在点击立即购买后,还是无法抓包出ticketid,不知道该怎么办

@ronething
Copy link
Owner

但是不是很懂怎么设置定时,是需要在app.py里面编辑填入吗

cron_time = request.args.get('cron_time')

xiudong-selenium/driver.py

Lines 114 to 115 in bd8b4d6

# start_time = "2021 07 19 20 00 00"
t1 = time.mktime(time.strptime(start_time, "%Y %m %d %H %M %S"))

多传一个 cron_time 参数即可,格式为(2022 05 05 22 00 00),注意中间是空格(url 编码会自动替换为 %20), 类似这样

http://127.0.0.1:9997/buy?event=111&ticketId=222&cron_time=2022 05 05 22 00 00

另外一个问题是如果秀动不允许网页购票,在点击立即购买后,还是无法抓包出ticketid,不知道该怎么办

这一个其实也是可以解决的,可以简单参考一位大佬写的这篇 blog,不过稍微麻烦点,然后需要一定的抓包知识。

其实还有其他的方法,不过涉及到一些基本的 js 逆向知识,也许以后有机会我会开源一下。

就这样,先 close,有其他问题再开 issue。

@ronething ronething changed the title 还是不懂怎么调用接口 定时的设置以及仅 app 可购买场次 ticketId 的获取 May 6, 2022
@oneeeeeeeeeee
Copy link
Contributor Author

谢谢大佬,膜拜!!!这就学习一下

@oneeeeeeeeeee
Copy link
Contributor Author

oneeeeeeeeeee commented May 8, 2022

经过昨天一天的奋战和学习,通过大佬推荐的文章,我终于找到了对应的ticketid怎么获取了。因为秀动更新了接口,所以文章不能完全适用,但是思路还是差不多的。通过fiddler的抓包和比较只允许APP购买和可网页购买的相关代码,我们实际要抓包的现在是https://wap.showstart.com/api/order/000JnT00lARM,后缀会因为不同票而不太一样,但是格式都差不多大概是00JxxxxtoolARM。修改里面,"sellTerminal":2,"将2改为1,即可把页面变成立即购买,修改完后再次运行,抓包相同的链接,里面就会详细的出现各个票的ticketid,按原来的方法就可以直接进入购票界面了

@ronething
Copy link
Owner

不错不错,祝你好运,有兴趣的话也可以看看帮忙改进下脚本 提提 pr 哦。

@oneeeeeeeeeee
Copy link
Contributor Author

大佬说笑了,我纯新手刚入门,离看懂您的代码再改进还有很长的时间

@ronething ronething mentioned this issue May 19, 2022
@Ohihahaha
Copy link

经过昨天一天的奋战和学习,通过大佬推荐的文章,我终于找到了对应的ticketid怎么获取了。因为秀动更新了接口,所以文章不能完全适用,但是思路还是差不多的。通过fiddler的抓包和比较只允许APP购买和可网页购买的相关代码,我们实际要抓包的现在是https://wap.showstart.com/api/order/000JnT00lARM,后缀会因为不同票而不太一样,但是格式都差不多大概是00JxxxxtoolARM。修改里面,"sellTerminal":2,"将2改为1,即可把页面变成立即购买,修改完后再次运行,抓包相同的链接,里面就会详细的出现各个票的ticketid,按原来的方法就可以直接进入购票界面了

能不能详细解释一下这个步骤,看着有点懵。
要怎么改参数

@Joannerem

This comment was marked as resolved.

@oneeeeeeeeeee
Copy link
Contributor Author

经过昨天一天的奋战和学习,通过大佬推荐的文章,我终于找到了对应的ticketid怎么获取了。因为秀动更新了接口,所以文章不能完全适用,但是思路还是差不多的。通过fiddler的抓包和比较只允许APP购买和可网页购买的相关代码,我们实际要抓包的现在是https://wap.showstart.com/api/order/000JnT00lARM,后缀会因为不同票而不太一样,但是格式都差不多大概是00JxxxxtoolARM。修改里面,"sellTerminal":2,"将2改为1,即可把页面变成立即购买,修改完后再次运行,抓包相同的链接,里面就会详细的出现各个票的ticketid,按原来的方法就可以直接进入购票界面了

能不能详细解释一下这个步骤,看着有点懵。 要怎么改参数

请先看那边作者推荐的Blog,学习一下如何使用fiddler。当你明白FIdder怎么使用之后,看那篇BLog以及我的表述就很容易明白步骤怎么做的

@oneeeeeeeeeee
Copy link
Contributor Author

大佬,我这里查的sellTerminal的字段是在“000JAx000000”里面。然后我暂停抓包了之后,进入编辑,修改了这个key之后,

我不是很知道你的那个工具怎么用,我只会fiddler.....

@Joannerem
Copy link

经过昨天一天的奋战和学习,通过大佬推荐的文章,我终于找到了对应的ticketid怎么获取了。因为秀动更新了接口,所以文章不能完全适用,但是思路还是差不多的。通过fiddler的抓包和比较只允许APP购买和可网页购买的相关代码,我们实际要抓包的现在是https://wap.showstart.com/api/order/000JnT00lARM,后缀会因为不同票而不太一样,但是格式都差不多大概是00JxxxxtoolARM。修改里面,"sellTerminal":2,"将2改为1,即可把页面变成立即购买,修改完后再次运行,抓包相同的链接,里面就会详细的出现各个票的ticketid,按原来的方法就可以直接进入购票界面了

麻烦再请教一下~我看request里terminal的值是wap,response里的才是2。而我好像只能改request的(纯小白orz),改了之后就报错了
8583910A-6A4C-4886-A6F9-5FE1B9D71950

@oneeeeeeeeeee
Copy link
Contributor Author

经过昨天一天的奋战和学习,通过大佬推荐的文章,我终于找到了对应的ticketid怎么获取了。因为秀动更新了接口,所以文章不能完全适用,但是思路还是差不多的。通过fiddler的抓包和比较只允许APP购买和可网页购买的相关代码,我们实际要抓包的现在是https://wap.showstart.com/api/order/000JnT00lARM,后缀会因为不同票而不太一样,但是格式都差不多大概是00JxxxxtoolARM。修改里面,"sellTerminal":2,"将2改为1,即可把页面变成立即购买,修改完后再次运行,抓包相同的链接,里面就会详细的出现各个票的ticketid,按原来的方法就可以直接进入购票界面了

麻烦再请教一下~我看request里terminal的值是wap,response里的才是2。而我好像只能改request的(纯小白orz),改了之后就报错了 8583910A-6A4C-4886-A6F9-5FE1B9D71950

在JSON里面看得到的,应该是在RAW里面修改才对

@oneeeeeeeeeee
Copy link
Contributor Author

经过昨天一天的奋战和学习,通过大佬推荐的文章,我终于找到了对应的ticketid怎么获取了。因为秀动更新了接口,所以文章不能完全适用,但是思路还是差不多的。通过fiddler的抓包和比较只允许APP购买和可网页购买的相关代码,我们实际要抓包的现在是https://wap.showstart.com/api/order/000JnT00lARM,后缀会因为不同票而不太一样,但是格式都差不多大概是00JxxxxtoolARM。修改里面,"sellTerminal":2,"将2改为1,即可把页面变成立即购买,修改完后再次运行,抓包相同的链接,里面就会详细的出现各个票的ticketid,按原来的方法就可以直接进入购票界面了

麻烦再请教一下~我看request里terminal的值是wap,response里的才是2。而我好像只能改request的(纯小白orz),改了之后就报错了 8583910A-6A4C-4886-A6F9-5FE1B9D71950

在JSON里面看得到的,应该是在RAW里面修改才对

参数是叫sellTerminal

@Joannerem
Copy link

经过昨天一天的奋战和学习,通过大佬推荐的文章,我终于找到了对应的ticketid怎么获取了。因为秀动更新了接口,所以文章不能完全适用,但是思路还是差不多的。通过fiddler的抓包和比较只允许APP购买和可网页购买的相关代码,我们实际要抓包的现在是https://wap.showstart.com/api/order/000JnT00lARM,后缀会因为不同票而不太一样,但是格式都差不多大概是00JxxxxtoolARM。修改里面,"sellTerminal":2,"将2改为1,即可把页面变成立即购买,修改完后再次运行,抓包相同的链接,里面就会详细的出现各个票的ticketid,按原来的方法就可以直接进入购票界面了

麻烦再请教一下~我看request里terminal的值是wap,response里的才是2。而我好像只能改request的(纯小白orz),改了之后就报错了 8583910A-6A4C-4886-A6F9-5FE1B9D71950

貌似是软件的差异导致的,Mac的是Fiddler everywhere,没有找到拦截response的入口。已用win的Fiddler成功获取了

@smallpang
Copy link

大佬们,我按照上面的blog,修改了sellTerminal里的值,能够将原本的“仅在app内购买”按钮修改成“立即购票”,但是我点击“立即购票”,无法像之前那样,唤起购票按钮,这样就无法获取到ticketid,我也对比可以在web端购买的链接,按照那篇blog对比type值,也没有找到不同的地方,请问应该怎么办呐?

@oneeeeeeeeeee
Copy link
Contributor Author

大佬们,我按照上面的blog,修改了sellTerminal里的值,能够将原本的“仅在app内购买”按钮修改成“立即购票”,但是我点击“立即购票”,无法像之前那样,唤起购票按钮,这样就无法获取到ticketid,我也对比可以在web端购买的链接,按照那篇blog对比type值,也没有找到不同的地方,请问应该怎么办呐?

你忘记取消断点了,两种方法,改完取消断点或者改完之后点击立即购买的时候回去继续放行

@smallpang
Copy link

你忘记取消断点了,两种方法,改完取消断点或者改完之后点击立即购买的时候回去继续放行

大佬。不行,我没有打断点,之前打断点试过,后来我取消了,现在依然唤起不了支付按钮,就是下面这个界面,我点不开。
image

能麻烦您试试吗?
image

@lyyww
Copy link

lyyww commented Jun 10, 2022

用burp亲测可行,打完断点,修改完response的sell terminal后,全部放行

@oneeeeeeeeeee
Copy link
Contributor Author

你忘记取消断点了,两种方法,改完取消断点或者改完之后点击立即购买的时候回去继续放行

大佬。不行,我没有打断点,之前打断点试过,后来我取消了,现在依然唤起不了支付按钮,就是下面这个界面,我点不开。 image

能麻烦您试试吗? image

主要是我不知道你怎么做的,我用Fidder做的是完全没问题的。近期的如姜云升,夏日企划等,我都是能修改获取的

@Redlove2015
Copy link

Redlove2015 commented Jun 13, 2022

实测 目前在抢夏企的17号厦门,使用 chrome 打开秀动之后
F12-
ELEMENT
这个路劲
document.querySelector("body > script:nth-child(2)")
/html/body/script[1]

这个位置直接就显示了 ID,ticketName
我是直接搜索的TICKET 看到

@ronething
Copy link
Owner

ronething commented Jun 21, 2022

关于这个问题 还可以不通过拦截响应解决

访问 www.showstart.com

注意原先访问的是 wap.showstart.com 域名不同

然后点击场次 可以直接通过开发者工具抓包获取对应 ticketId

@ronething ronething pinned this issue Jun 21, 2022
@RowanlLuo
Copy link

大佬,你好。测试几个开售的演出时候遇到问题,场景:【演出开票时间12:00】 ,两台电脑pycharm设置的开抢时间分别时【11:59:57】和【12:00:03】.(因为延迟3秒抢票故延迟),但是到点没有进行自动抢票的操作,只有在把时间往后推迟1~2分钟的时候才能到点开抢。是因为开售一瞬间的流量太大了,请求不到后台了吗?

console log 输出:(到开抢时间点时)
['CDwindow-E211D11A1250D4581E28E024DBBAB248']
127.0.0.1 - - [29/Jun/2022 14:00:53] "GET /favicon.ico HTTP/1.1" 404 -

@ronething
Copy link
Owner

大佬,你好。测试几个开售的演出时候遇到问题,场景:【演出开票时间12:00】 ,两台电脑pycharm设置的开抢时间分别时【11:59:57】和【12:00:03】.(因为延迟3秒抢票故延迟),但是到点没有进行自动抢票的操作,只有在把时间往后推迟1~2分钟的时候才能到点开抢。是因为开售一瞬间的流量太大了,请求不到后台了吗?

console log 输出:(到开抢时间点时)

['CDwindow-E211D11A1250D4581E28E024DBBAB248']

127.0.0.1 - - [29/Jun/2022 14:00:53] "GET /favicon.ico HTTP/1.1" 404 -

没有打印 “开始抢票” 吗

@rookieyjh
Copy link

实测 目前在抢夏企的17号厦门,使用 chrome 打开秀动之后 F12- ELEMENT 这个路劲 document.querySelector("body > script:nth-child(2)") /html/body/script[1]

这个位置直接就显示了 ID,ticketName 我是直接搜索的TICKET 看到

哥们儿我想问一下 您用这个代码能抢到夏企的门票吗 我总是下单速度过快不知道如何调节

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants