sqli-labs(八)——修改密码处sql注入+http头sql注入
第17关:
这是一个重置密码的功能存在sqk注入,尝试账号密码都输入'",发现只会显示登陆失败,没有报错信息。

这个时候先推测一下后台的sql形式大概应该是: update users set password = ? where name =?
那么实际上是有两个处注入,我们可以先尝试name参数的注入
分别输入:
uname=1' or 1=1 # &passwd=1&submit=Submit
uname=1') or 1=1 # &passwd=1&submit=Submit
uname=1"or 1=1 # &passwd=1&submit=Submit
uname=1") or 1=1 # &passwd=1&submit=Submit
发现页面都没有变化,于是我初步判断username参数可能没有注入漏洞
尝试password参数,这里我踩了一个坑,我开始输入的是
分别输入
uname=1 &passwd=1' or 1=1 # &submit=Submit
uname=1 &passwd=1') or 1=1 # &submit=Submit
uname=1 &passwd=1"or 1=1 #&submit=Submit
uname=1 &passwd=1") or 1=1 #&submit=Submit
发现页面也没有变化,后来看了源码才发现

这里会先用uname进行查询操作,存在该用户才会进行修改操作,于是我输入
uname=admin &passwd=1' or 1=1 # &submit=Submit

显示成功页面了,说明后台是使用的单引符号进行的拼凑。
输入uname=admin &passwd=1‘&submit=Submit ,看下程序是否会报错(如果不报错,就只能尝试盲注了)

可以看到有报错信息,可以先尝试报错注入。

后面的就直接将select user()替换成其他的查询语句即可。
这里还有一个点需要注意的,concat里面不能直接使用~,必须用0x7e。
第十八关:
这关是一个关于http header的注入

使用正确的账号密码登陆后发现,会将http header中的User-Agent显示在页面上,这关需要利用到burp,输入正确的账号密码后,提交,使用burp拦截。

我在User-Agent后面加单引符号后,发现页面会爆sql的错误,如下图

从报错信息可以看到后面还有两个参数,一个是ip,一个是用户名。如果对sql语句有一定了解的人,应该知道后台应该是个insert的操作
INSERT INTO 表名称 VALUES (值1, 值2,....)
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....) 不管是上面哪一种,我们只需要使用报错注入后将后面的的参数补全,然后加上注释,如下图:

成功查询出数据

后面的操作就不继续了。
HTTP 请求头中除了 User-Agent可能存在sql注入意外,还有referer、X-Forwarded-For可能存在sql注入。
第十九关:
这是一个referer的注入,上一关也提到了,测试方法和上一关完全一样,只是出现的地方不一样而已。
sqli-labs(八)——修改密码处sql注入+http头sql注入的更多相关文章
- 【sqli-labs】 less24 POST- Second Order Injections *Real treat* -Stored Injections (POST型二阶注入 *真的好玩?* 存储注入)
简单登陆浏览一遍后,发现是一个登陆注册修改密码的应用 审查一下代码 登陆页面的username,password使用了转义 注册页面的参数也进行了转义处理 但是在修改password的页面,直接从se ...
- SQL注入系列:SQLi Labs
前言 关于注释 说明:在SQL中--[空格]表示注释,但是在URL中--空格在发送请求的时候会把最后的空格去掉,所以用--+代替,因为+在被URL编码后会变成空格 MYSQL有三种常用注释: --[空 ...
- ATM-JAVA程序 //程序有5处相同错误,找不出原因 转账功能没有实现,修改密码来不及实现了
package JCC;//信1705-3 20173681 靳晨晨import java.io.BufferedReader;import java.io.File;import java.io.F ...
- sqlite修改表、表字段等与sql server的不同之处
sqlite中只支持 ALTER TABLE 命令的 RENAME TABLE 和 ADD COLUMN. 其他类型的 ALTER TABLE 操作如 DROP COLUMN,ALTER COLUMN ...
- 九十八:CMS系统之登录页面CSRF保护和修改密码页面
加上CSRF防御 修改密码页面 视图 class ResetPwd(views.MethodView): decorators = [login_required] # 校验登录状态 def get( ...
- SQLI LABS Basic Part(1-22) WriteUp
好久没有专门练SQL注入了,正好刷一遍SQLI LABS,复习巩固一波~ 环境: phpStudy(之前一直用自己搭的AMP,下了这个之后才发现这个更方便,可以切换不同版本的PHP,没装的小伙伴赶紧试 ...
- 注入学习1:SQL注入语句大全
学习背景 之前做了xss预防,以及些许的注入预防了,但是不够全面,如果还是搜集了下一些常用的注入手段,以此用来进行更好的预防. 什么是注入 一般来说,SQL注入一般存在于形如:HTTP://xxx.x ...
- Atitit 修改密码的功能流程设计 attilax总结
Atitit 修改密码的功能流程设计 attilax总结 1.1. 注意点1 1.2. 设计修改用户密码功能时把用户ID保存在哪里?1 1.3. Ui设计1 1.4. 功能设计源码1 1.5. Agt ...
- 使用sqlmap注入DVWA的SQL Injection菜单
1 使用sqlmap注入DVWA的SQL Injection菜单 本教程中的登陆地址:http://192.168.0.112/dvwa/login.php 1.1 获取cookie信息 1) 使用a ...
随机推荐
- CH 4701 - 天使玩偶 - [CDQ分治]
题目链接:传送门 关于CDQ分治(参考李煜东<算法竞赛进阶指南>): 对于一系列操作,其中的任何一个询问操作,其结果必然等价于:初始值 + 此前所有的修改操作产生的影响. 假设共有 $m$ ...
- 1.7Oob成员变量和局部变量疑难区分
import java.util.Scanner; public class booleann { private float fWidth; private float fHeight; void ...
- 创建本地SVN版本库以及将SVN导入GIT
创建本地SVN 通常SVN作为一种服务,是在服务器上架设,供用户通过网络访问使用.但如果只是自己日常使用,完全可以架设在本机上,不需要启动后台程序,通过文件的方式访问即可. 建立本地SVN非常简单,一 ...
- Java代理和动态代理机制分析和应用
本博文中项目代码已开源下载地址:GitHub Java代理和动态代理机制分析和应用 概述 代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问.代理类负责为委托类预处理消息 ...
- 出于性能考虑,C语言自动地以传地址的方式将数组传递给被调函数 const 编译错误 最小权限原则
#include <stdio.h> int main(void) { char array[5]; printf("array=%p,&array[0]=%p,& ...
- nfs的时间问题,影响编译
[root@okk dpdk]# rm -rf x86_64-native-linuxapp-gcc/ [root@okk dpdk]# A=`date +%s` ; B=`expr $A + `; ...
- Apache Kafka - KIP-42: Add Producer and Consumer Interceptors
kafka 0.10.0.0 released Interceptors的概念应该来自flume 参考,http://blog.csdn.net/xiao_jun_0820/article/det ...
- LeetCode 867 Transpose Matrix 解题报告
题目要求 Given a matrix A, return the transpose of A. The transpose of a matrix is the matrix flipped ov ...
- 2018/05/02 PHP 之错误与异常处理
在学习中,越学习越觉得自己基础薄弱. 在平常工作中,对于某些错误处理感觉不知道怎么下手,于是决定重新再整理一下. 强烈推荐这篇文章,真的感觉学习到了很多. 部分引用::再谈PHP错误与异常处理 -- ...
- Maven项目常见的小问题
pom.xml文件头报错 场景 例Failure to transfer org.apache.maven.plugins:maven-surefire-plugin:pom:2.12.4 from ...