第二十四关:

这关考验的是sql的二次注入。

这关是一个登陆加注册的功能点,登陆的地方没有注入,账号密码都输入输入'",页面只会显示登陆失败。

但注册账号的地方没有做过滤可以注册带有单引符号的用户,比如可以直接注册一个单引符号的用户

其实从源码中可以看到,只要是用户输入的参数,再放入sql进行拼凑之前都会经过mysql_real_escape_string这个函数的转义,也就造不成注入了(除了宽字节注入)

后来发现,用户登陆成功后会有一个修改密码的功能

这里也可以直接看源码

sql语句中有三个参数拼凑进去了,但是可以看到程序只对用户输入的参数做了转义,而从session中获取的参数没有做处理,原因是理论上session是可信域,也就是说里面参数是用户不可控的。

但是事与愿违,session中的uname是从数据库中取得,而我们在注入账号的时候是可以往数据库中加入带有单引符号的uname。

ok,知道这里应该可以注入后,我们再仔细看下这个sql语句,这是一个update的注入,假设uname我们可以随意控制,我们让uname= admin' #是不是就可以将管理员的密码修改了,而且由于注释掉了后面的语句,所以我们都不用输入正确的admin的密码。

发现可以成功修改管理员的密码。那么这里仅仅能做到修改密码的操作吗?

显然不是,我们之前就了解了update的sql语句存在报错注入和盲注,这里没有报错信息,所以只能盲注了。但这里由于盲注之前需要有个注册操作,比较麻烦,需要自己写脚本。我这里先不写了,以后遇到了再补上吧。

sqli-labs(十一)(二次注入)的更多相关文章

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

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

  2. Sqli labs系列-less-3 。。。

    原本想着找个搜索型的注入玩玩,毕竟昨天被实力嘲讽了 = = . 找了好长时间,我才发现,我没有 = = ,网上搜了一个存在搜索型注入的源码,我看了好长时间,楞没看出来从哪里搜索注入了....估计是我太 ...

  3. Sqli labs系列-less-2 详细篇

    就今天晚上一个小插曲,瞬间感觉我被嘲讽了. SQL手工注入这个东西,杂说了吧,如果你好久不玩的话,一时说开了,你也只能讲个大概,有时候,长期不写写,你的构造语句还非常容易忘,要不我杂会被瞬间嘲讽了啊. ...

  4. Sqli labs系列-less-1 详细篇

    要说 SQL 注入学习,网上众多的靶场,就属 Sqli labs 这个系列挺不错的,关卡达到60多关了,我自己也就打了不几关,一个挺不错的练习SQL注入的源码. 我一开始就准备等我一些原理篇总结完了, ...

  5. sql注入时易被忽略的语法技巧以及二次注入

    那些容易被忽略.容易被弄错的地方 sql注入时的技巧 ========================================================================= ...

  6. 【PHP代码审计】 那些年我们一起挖掘SQL注入 - 4.全局防护Bypass之二次注入

    0x01 背景 现在的WEB程序基本都有对SQL注入的全局过滤,像PHP开启了GPC或者在全局文件common.php上使用addslashes()函数对接收的参数进行过滤,尤其是单引号.二次注入也是 ...

  7. SQLI LABS Advanced Part(23-37) WriteUp

    继续继续!这里是高级部分! less-23: 提示输入id参数,尝试: ?id=1' and '1 返回的结果与?id=1相同,所以可以直接利用了. ?id=1' order by 5# 可是页面返回 ...

  8. 【sql注入】简单实现二次注入

    [sql注入]简单实现二次注入 本文转自:i春秋社区 测试代码1:内容详情页面 [PHP] 纯文本查看 复制代码 01 02 03 04 05 06 07 08 09 10 11 12 13 14 1 ...

  9. Sql 注入详解:宽字节注入+二次注入

    sql注入漏洞 原理:由于开发者在编写操作数据库代码时,直接将外部可控参数拼接到sql 语句中,没有经过任何过滤就直接放入到数据库引擎中执行了. 攻击方式: (1) 权限较大时,直接写入webshel ...

随机推荐

  1. Codeforces 1096D - Easy Problem - [DP]

    题目链接:http://codeforces.com/problemset/problem/1096/D 题意: 给出一个小写字母组成的字符串,如果该字符串的某个子序列为 $hard$,就代表这个字符 ...

  2. [No0000115]打开Excel2016提示内存或磁盘空间不足的解决方法

    症状: 法一:右键文件,并 解除锁定: 法二: 在系统的服务中查看Windows Firewall服务 和Windows Update服务是否开启,如果没有开启就把他们启动一下. 1.在桌面的[计算机 ...

  3. Apache Sharding-Sphere

    Sharding-Sphere 正式步入 Apache 基金会孵化器 - 开源中国 https://www.oschina.net/news/101691/sharding-sphere-enter- ...

  4. page 页 分页 分段

    小结: 1. 页:磁盘和内存间传输数据的最小单位: MySQL: What is a page? https://stackoverflow.com/questions/4401910/mysql-w ...

  5. PHP之伪类型与变量

    本文档中使用的伪类型与变量 伪类型(pseudo -types)是PHP文档里用于指示参数可以使用的类型和值, 请注意,它们不是PHP语言里原生类型, 所以不能把伪类型用于自定义函数里面的类型约束(t ...

  6. 《HTTP - 概述》

    晚上听着 木小雅<可能否>,让我这暴躁的一天得以回复一下. 学习是长久之事,不能急躁.应该系统的去学习一些东西. 1:HTTP 最严谨的叫法应该是 超文本转移协议,但大家一般都叫做 超文本 ...

  7. Appium入门(7)__Appium Desired Capabilities

    Desired Capabilities 是由多个键值对组成,代表移动设备相关信息.由Appium Client向Appium Server发送. 但无论Appium Client使用何种语言,最终是 ...

  8. os.path的使用

    os.path 1.返回当前目录 举个例子: (1)给出一个目录名称,返回绝对路径 project_path = "Exercise" path = os.path.dirname ...

  9. pycharm如何设置注释的字体颜色

    一.pycharm如何设置注释的字体颜色 1.打开pycharm编辑器,file > settings > Editor > Color Scheme > python > ...

  10. 下载以及安装VMware Player Pro 64位

    1.下载地址:https://download3.vmware.com/software/wkst/file/VMware-workstation-full-14.0.0-6661328.exe 2. ...