We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
首先其实对网页编程我其实已经有点陌生了,大多数经历的是asp.net时代,其实最网页基础的js交互逻辑掌握的不是很好。 只能一步一步来 我们野心小一点 从输入https://erp.aaa.com/到显示登陆界面到底发生了什么?假设这是一个干净的浏览器,从来没访问过这个网站
其实已经有了4个交互了!
Request GET https://erp.aaa.com/ reponse其实让客户端做一次重定向 让我回忆起asp.net时代的Redrict("url"),应该是一个意思
第一次 Request http://erp.aaa.com/jqerp/ 返回301 PS:301表示(永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。 同时Location:https://erp.aaa.com/jqerp/
第二次 Request http://erp.aaa.com/jqerp/ 原地重定向后再踢一次皮球被Location到https://erp.aaa.com/cas/login?service=https%3A%2F%2Ferp.aaa.com%2Fjqerp%2F
同时还给了一个Cookie,JSESSIONID=6F2CEE9CD6C0B7C05676D5360C24F7F5; Path=/jqerp; HttpOnly 还没登陆就送JSESSIONID是啥情况 先记下来以后前后对应
注意这次路径是/cas
看看输入用户密码点击登陆发生了什么 一样是4步
返回多个两个cookie值 CASPRIVACY=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/cas/ CASTGC=TGT-6325-AZQI0EqH9xnZnx61r5gJL1g00Pvpk4flnQWk1bmnuX0eWPTlWX-cas; Path=/cas/
再次重定向https://erp.aaa.com/jqerp/?ticket=ST-3346-czpTd24mHTAYfasQvpo6-cas
3.再回https://erp.aaa.com/jqerp/ 终于见到正常的页面了
4 index_v2.jsp 也是普通页面,没特别
数据都是靠ajax获取的 我们看一个获取任务列表吧! 可以看到两个cookie项 JSESSION还是6F2CEE9CD6C0B7C05676D5360C24F7F5那一个 CUNAME是从js里面设置进去的 代码也翻到了 var _userInfo=[{"parentsId":"2076","manageFlag":"Manager","roles":"","mobilephone":"13924","sex":"1","empName":"改名","name":"XX[/上海XX/研发中心/上海研发中心]","employeeId":"1111","logonCode":"abc","orgId":"622076","eMail":"bit.com","parentsName":"研发中心/上海研发中心"}]; System.storeUserInfo(_userInfo); 是在步骤2-3里面,从服务端返回的
多少有点障眼法,安全也就这样了,基本上所有的数据只要设置JSESSION和CUNAME就可以“畅通无阻”了
明天再用postman验证下想法。 很好再次补了一次基础课!
试试“直捣黄龙” 先走1-3拿第一个 JSESSIONID,然后直接设置_CUNAME直接拿任务列表
所以我必须要从Login页面里面“抓” 参数准备好
登陆很顺利
再回过头来拿task 目标达成
简而言之就是是要先拿第一个SESSION ID被踢去登陆页
然后在登陆页拿到第二个SESSION ID,所以两个SESSION ID是连续获取的
用第二的SESSION ID和username,password,以及It隐藏字段执行登陆
用第一个SESSION ID 获取首页html,因为第二个ESSION ID通过验证服务端是知道的,所以第一个SESSION ID也是有效的
用第一个 SESSION ID获取 api数据
The text was updated successfully, but these errors were encountered:
No branches or pull requests
第一步
首先其实对网页编程我其实已经有点陌生了,大多数经历的是asp.net时代,其实最网页基础的js交互逻辑掌握的不是很好。
只能一步一步来
我们野心小一点
从输入https://erp.aaa.com/到显示登陆界面到底发生了什么?假设这是一个干净的浏览器,从来没访问过这个网站
其实已经有了4个交互了!
Request GET https://erp.aaa.com/
reponse其实让客户端做一次重定向
让我回忆起asp.net时代的Redrict("url"),应该是一个意思
第一次 Request http://erp.aaa.com/jqerp/
返回301
PS:301表示(永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
同时Location:https://erp.aaa.com/jqerp/
第二次 Request http://erp.aaa.com/jqerp/
原地重定向后再踢一次皮球被Location到https://erp.aaa.com/cas/login?service=https%3A%2F%2Ferp.aaa.com%2Fjqerp%2F
同时还给了一个Cookie,JSESSIONID=6F2CEE9CD6C0B7C05676D5360C24F7F5; Path=/jqerp; HttpOnly
还没登陆就送JSESSIONID是啥情况
先记下来以后前后对应
这次不再踢球了又送我一个JSESSIONID
JSESSIONID=47B86DA8C1C82EC32ABAE108B9050EB2; Path=/cas; HttpOnly
注意这次路径是/cas
登陆
看看输入用户密码点击登陆发生了什么
一样是4步
可以看到Request里面 JSESSIONID=47B86DA8C1C82EC32ABAE108B9050EB2被带上了,有作用不明,验证码?!
返回多个两个cookie值
CASPRIVACY=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/cas/
CASTGC=TGT-6325-AZQI0EqH9xnZnx61r5gJL1g00Pvpk4flnQWk1bmnuX0eWPTlWX-cas; Path=/cas/
再次重定向https://erp.aaa.com/jqerp/?ticket=ST-3346-czpTd24mHTAYfasQvpo6-cas
这次请求用的JSESSIONID是前面第三步的JSESSIONID,双JSESSIONID有点障眼法
再次跳到https://erp.aaa.com/jqerp/
3.再回https://erp.aaa.com/jqerp/
终于见到正常的页面了
4 index_v2.jsp
也是普通页面,没特别
获取业务数据
数据都是靠ajax获取的
我们看一个获取任务列表吧!
可以看到两个cookie项
JSESSION还是6F2CEE9CD6C0B7C05676D5360C24F7F5那一个
CUNAME是从js里面设置进去的
代码也翻到了
var _userInfo=[{"parentsId":"2076","manageFlag":"Manager","roles":"","mobilephone":"13924","sex":"1","empName":"改名","name":"XX[/上海XX/研发中心/上海研发中心]","employeeId":"1111","logonCode":"abc","orgId":"622076","eMail":"bit.com","parentsName":"研发中心/上海研发中心"}];
System.storeUserInfo(_userInfo);
是在步骤2-3里面,从服务端返回的
多少有点障眼法,安全也就这样了,基本上所有的数据只要设置JSESSION和CUNAME就可以“畅通无阻”了
明天再用postman验证下想法。
很好再次补了一次基础课!
Postman验证
试试“直捣黄龙”
先走1-3拿第一个 JSESSIONID,然后直接设置_CUNAME直接拿任务列表
失败了~,没通过验证,预料之中
可以发现除了用户密码
还有一个It偷偷做“验证码”
所以我必须要从Login页面里面“抓”
参数准备好
登陆很顺利
再回过头来拿task
目标达成
分析
简而言之就是是要先拿第一个SESSION ID被踢去登陆页
然后在登陆页拿到第二个SESSION ID,所以两个SESSION ID是连续获取的
用第二的SESSION ID和username,password,以及It隐藏字段执行登陆
用第一个SESSION ID 获取首页html,因为第二个ESSION ID通过验证服务端是知道的,所以第一个SESSION ID也是有效的
用第一个 SESSION ID获取 api数据
The text was updated successfully, but these errors were encountered: