漏洞重温之sql注入(七)
漏洞重温之sql注入(七)
sqli-labs通关之旅
Less-31
首先,进入31关,我们先添加上id参数。

然后,我们查看源码。

我们门可以看到,index页面源码其实很简单,网页也没有对我们的输入做防御。
所以这里我们只需要使用 双引号加括号闭合,然后再后面拼接sql语句就可以了。
payload如下:
1") and 1=2 union select 1,version(),database() --

至于login页面,跟前面一关一样,基于参数污染的注入。
payload如下:
id=1&id=1") and 1=2 union select 1,version(),database() --

第三十一关,通关。
Less-32

第三十二关,同样为get型注入,然后进入我们喜闻乐见的看源码环节。

从这段代码中,我们可以看到,程序在最开始定义了一个函数,并且将我们传入的参数使用了这个函数进行了转义。根据代码,我们可以发现,网页是过滤了单引号,双引号和斜杠。
接着往下看。

因为在正常情况下,我们构造闭合需要使用到单引号或者双引号,所以在一般情况下,如果单双引号被过滤,我们就无法进行正常注入操作。
但是,根据代码:
mysql_query("SET NAMES gbk");
我们知道网页使用的是gbk编码,所以我们就可以使用宽字节注入来进行绕过对单引号的过滤。
构造payload:
1%df%27+and+1=2+union+select+1,version(),database()+--+

对于这个payload,简单点来理解的话就是,如果网站使用gbk编码,那么%df就会和过滤中添加的内容组成一个字符,这就导致了本来应该针对单引号的过滤被提前组合,所以单引号就可以免于被过滤。后面因为是直接在url中添加内容,所以需要使用“+”来代替空格,不然会引起语句出错。
第三十二关,通关。
Less-33

查看源码。

首先,第一个红框内容,告诉我们网页封装了一个函数来进行参数过滤。其中addslashes函数的作用是在输入内容前加上一个斜杠。
第二个红框内容,告诉我们网页将我们输入的参数进行了转义。
第三个红框内容,告诉我们这里可以使用宽字节注入(不明白为什么的可以去看上一关),以及这里的闭合需要使用单引号。
知道这几点之后,我们就可以开始构造payload了:
1%df%27+and+1=2+union+select+1,version(),database()+--+

第三十三关,通关。
Less-34

跟前面几关不同,34关是POST型注入,面对这种注入,我们一般有两种方式,第一利用工具包抓取请求包,直接在请求包中拼接payload,另外一种就是利用hackbar的POST DATA功能。
这里我们使用第一种。
但我们首先还是要先查看源码。

网页将我们输入的uname参数和passwd参数使用addslashes函数进行转义,然后网页又使用gbk编码,所以我们可以使用宽字节注入来进行绕过。
这次的payload可能跟之前有些区别。
因为这里在登录成功之前没有回显位置。所以在我们不确定用户名和密码的时候,我们可以使用报错注入来进行注入攻击。
payload如下:
1%df%27+and+updatexml(1,concat(0x7e,(database()),0x7e),1)+--+

第三十四关,通关。
Less-35
第三十五关同样是get型注入,直接看源码。

首先我们看到了网页对我们输入的id同样进行了过滤,而且网页依然使用了gbk编码。
但是,这里并不需要使用到宽字节注入。
因为我们可以明确的看到,id参数,并没有使用任何包裹,也就是说,我们可以直接在后面拼接我们希望系统执行的sql语句。
payload:
1 and 1=2 union select 1,version(),database()

第三十五关,通关。
漏洞重温之sql注入(七)的更多相关文章
- 漏洞重温之sql注入(五)
漏洞重温之sql注入(五) sqli-labs通关之旅 填坑来了! Less-17 首先,17关,我们先查看一下页面,发现网页正中间是一个登录框. 显然,该关卡的注入应该为post型. 直接查看源码. ...
- 漏洞重温之sql注入(六)
漏洞重温之sql注入(六) sqli-labs通关之旅 Less-26 进入第26关,首先我们可以从网页的提示看出本关是get型注入. 我们给页面添加上id参数后直接去查看源码. 需要关注的东西我已经 ...
- DVWA漏洞演练平台 - SQL注入
SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,具体来说,它是利用现有应用程序将(恶意的)SQL命令注入到后台数据库引擎执 ...
- pikachu漏洞练习之sql注入
这里因为实验的时候只记录了一部分所以就展示一部分 1.1.1数字型注入 (1)看到界面发现是查询id功能,没有在url里看到有传参所以应该是post方法提交数据. (2)进行sql注入之前我们最好是先 ...
- 【漏洞汇总】SQL 注入漏洞之 mysql
日期:2019-07-23 19:55:59 更新:2019-08-02 10:40:37 作者:Bay0net 介绍:Mysql 注入笔记 0x01. 基本信息 1.1 基本术语 数据库: 数据库是 ...
- Nikto是一款Web安全扫描工具,可以扫描指定主机的web类型,主机名,特定目录,cookie,特定CGI漏洞,XSS漏洞,SQL注入漏洞等,非常强大滴说。。。
Nikto是一款Web安全扫描工具,可以扫描指定主机的web类型,主机名,特定目录,cookie,特定CGI漏洞,XSS漏洞,SQL注入漏洞等,非常强大滴说... root@xi4ojin:~# cd ...
- WordPress WP-Realty插件‘listing_id’参数SQL注入漏洞
漏洞名称: WordPress WP-Realty插件‘listing_id’参数SQL注入漏洞 CNNVD编号: CNNVD-201310-499 发布时间: 2013-10-23 更新时间: 20 ...
- WordPress NOSpam PTI插件‘comment_post_ID’参数SQL注入漏洞
漏洞名称: WordPress NOSpam PTI插件‘comment_post_ID’参数SQL注入漏洞 CNNVD编号: CNNVD-201309-388 发布时间: 2013-09-24 更新 ...
- 关于sql注入漏洞的挖掘及渗透工具简介
大量的现代企业采用Web应用程序与其客户无缝地连接到一起,但由于不正确的编码,造成了许多安全问题.Web应用程序中的漏洞可使黑客获取对敏感信息(如个人数据.登录信息等)的直接访问. Web应用程序准许 ...
随机推荐
- TestFlight无法访问怎么办?TF如何链接AppStoreConnect解决教程
最近苹果商店半天下架近3万款应用的新闻闹的沸沸扬扬,很多被下架应用的运营商转将APP上架了TestFlight内测商店(TF签名上架),但是从7月31日起很多用户就开始反映TestFlight内测应用 ...
- 她娇羞道“不用这样细致认真的说啊~~”———详细图解在Linux环境中创建运行C程序
她娇羞说,不用这样细致认真的说啊———详细图解在Linux环境中创建运行C程序“不,这是对学习的负责”我认真说到 叮叮叮,停车,让我们看看如何在Linux虚拟机环境中,创建运行C程序 详细图解在Lin ...
- 99%的人都会遇到的Python “用户环境”问题
- CSS变化、过渡与动画
CSS变换用于在空间中移动物体,而CSS过渡和CSS关键帧动画用于控制元素随时间推移的变化. 变换.过渡和关键帧动画的规范仍然在制定中.尽管如此,其中大多数特性已经在常用浏览器中实现了. 1.二维变换 ...
- 2、适配器 adapter 模式 加个"适配器" 以便于复用 结构型设计模式
1.什么是适配器模式? 适配器如同一个常见的变压器,也如同电脑的变压器和插线板之间的电源连接线,他们虽然都是3相的,但是电脑后面的插孔却不能直接插到插线板上. 如果想让额定工作电压是直流12伏特的笔记 ...
- SSH config语法关键字
1.SSH config 语法关键字 host 别名 HostName 主机名(ip) User 用户(root就是一个用户) Port 端口(默认22) IdentityFile 密钥文件的路 ...
- speedtest测速网站测速节点添加流程
一.准备一台服务器: 系统需求:常见Linux系统: 二.服务器入网(确保可以访问互联网): 三.ssh登录到服务器安装speedtest守护程序程序包: 安装和启动,执行以下命令: curl -O ...
- Probabilistic PCA、Kernel PCA以及t-SNE
Probabilistic PCA 在之前的文章PCA与LDA介绍中介绍了PCA的基本原理,这一部分主要在此基础上进行扩展,在PCA中引入概率的元素,具体思路是对每个数据$\vec{x}_i$,假设$ ...
- Java 10更新汇总,新的编译器通吃主流编程语言
早些时候Oracle发布了Java 10,这是Oracle更改发布策略之后的第一版Java,Oracle现已决定每六个月发布一个新的Java版本,周期缩短了,但是并不是说我们要学的更多了,而是说缩短开 ...
- python基础 - 切片
今日学习内容 切片 取一个list或者tuple的部分数据是常见的操作 a = [1,2,3] 比如取第一个数我们可以用a[0]的方式,如果我们想取第一个和第二个就有点困难了,a[0-1]或者a[0] ...