第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注入的更多相关文章

  1. 【sqli-labs】 less24 POST- Second Order Injections *Real treat* -Stored Injections (POST型二阶注入 *真的好玩?* 存储注入)

    简单登陆浏览一遍后,发现是一个登陆注册修改密码的应用 审查一下代码 登陆页面的username,password使用了转义 注册页面的参数也进行了转义处理 但是在修改password的页面,直接从se ...

  2. SQL注入系列:SQLi Labs

    前言 关于注释 说明:在SQL中--[空格]表示注释,但是在URL中--空格在发送请求的时候会把最后的空格去掉,所以用--+代替,因为+在被URL编码后会变成空格 MYSQL有三种常用注释: --[空 ...

  3. ATM-JAVA程序 //程序有5处相同错误,找不出原因 转账功能没有实现,修改密码来不及实现了

    package JCC;//信1705-3 20173681 靳晨晨import java.io.BufferedReader;import java.io.File;import java.io.F ...

  4. sqlite修改表、表字段等与sql server的不同之处

    sqlite中只支持 ALTER TABLE 命令的 RENAME TABLE 和 ADD COLUMN. 其他类型的 ALTER TABLE 操作如 DROP COLUMN,ALTER COLUMN ...

  5. 九十八:CMS系统之登录页面CSRF保护和修改密码页面

    加上CSRF防御 修改密码页面 视图 class ResetPwd(views.MethodView): decorators = [login_required] # 校验登录状态 def get( ...

  6. SQLI LABS Basic Part(1-22) WriteUp

    好久没有专门练SQL注入了,正好刷一遍SQLI LABS,复习巩固一波~ 环境: phpStudy(之前一直用自己搭的AMP,下了这个之后才发现这个更方便,可以切换不同版本的PHP,没装的小伙伴赶紧试 ...

  7. 注入学习1:SQL注入语句大全

    学习背景 之前做了xss预防,以及些许的注入预防了,但是不够全面,如果还是搜集了下一些常用的注入手段,以此用来进行更好的预防. 什么是注入 一般来说,SQL注入一般存在于形如:HTTP://xxx.x ...

  8. Atitit 修改密码的功能流程设计 attilax总结

    Atitit 修改密码的功能流程设计 attilax总结 1.1. 注意点1 1.2. 设计修改用户密码功能时把用户ID保存在哪里?1 1.3. Ui设计1 1.4. 功能设计源码1 1.5. Agt ...

  9. 使用sqlmap注入DVWA的SQL Injection菜单

    1 使用sqlmap注入DVWA的SQL Injection菜单 本教程中的登陆地址:http://192.168.0.112/dvwa/login.php 1.1 获取cookie信息 1) 使用a ...

随机推荐

  1. rabbitmq简单实例

    JMS组件:activemq(慢)AMQP组件(advance message queue protocol):rabbitmq和kafka 一..消息队列解决了什么问题?异步处理应用解耦流量削锋日志 ...

  2. 【紫书】Urban Elevations UVA - 221 离散化

    题意:给你俯视图,要求依次输出正视图中可以看到的建筑物 题解:任意相邻的x间属性相同,所以离散化. 坑:unique只能对数组用.下标易错 list不能找某元素的next.用了个很麻烦的处理 数组: ...

  3. python——二分查找算法

    从有序列表的候选区data[0:n]开始,通过对待查找的值与候选区中间值的比较,可以使候选区减少一半   二分查找: 在一段数字内,找到中间值,判断要找的值和中间值大小的比较. 如果中间值大一些,则在 ...

  4. 内部排序->归并排序->2-路归并排序

    文字描述 假设初始序列有n个记录,则可看成是n个有序的字序列,每个字序列的长度为1,然后两两归并,得到[n/2]个长度为2或1的有序子序列:再两两归并,…, 如此重复,直到得到一个长度为n的有序序列为 ...

  5. 洛谷P3248 树 [HNOI2016] 主席树+倍增+分治

    正解:主席树+倍增+分治 解题报告: 传送门! 首先看到这题会想到之前考过的这题 但是那题其实简单一些,,,因为那题只要用个分治+预处理就好,只是有点儿思维难度而已 这题就不一样,因为它说了是按照原树 ...

  6. logback logback.xml常用配置详解(二)<appender>

    转自:http://aub.iteye.com/blog/1101260 logback 常用配置详解(二) <appender> <appender>: <append ...

  7. FlashFXP+FileZillaServer

    从远程站点里拷贝文件到本地时,如果文件太大,通常会非常耗时,再加上若需要拨VPN,网络上的任何波动都会造成传输文件失败从头来过. 运用FlashFXP和FileZillaServer这两个工具,它拥有 ...

  8. linux export source

  9. 数据库级别DML操作监控审计、表触发器/对象触发器

    使用触发器记录DML,使用触发器记录表的DML 数据库级别DML操作监控审计.表触发器/对象触发器 --创建记录表 CREATE TABLE T_SHALL_LOG ( ID , ) , EVTIME ...

  10. centos安装Django之三:安装python

    这是centos安装Django系列第三篇,安装python.centos系统已经自带了python2.6,但是它被系统很多程序所依赖,不建议删除.我们可以使用以下命令来查看我们使用的Python版本 ...