之前参与“强网杯”,学到了不少姿态,其间的web题three hit形象深入,考的是二次注入的问题,这儿对二次注入测验做一个小结。
0×01什么是二次注入?
所谓二次注入是指已存储(数据库、文件)的用户输入被读取后再次进入到 SQL 查询句子中导致的注入。
二次注入是sql注入的一种,可是比一般sql注入运用愈加困难,运用门槛更高。一般注入数据直接进入到 SQL 查询中,而二次注入则是输入数据经处理后存储,取出后,再次进入到 SQL 查询。
0×02二次注入的原理
二次注入的原理,在之一次进行数据库刺进数据的时分,仅仅只是运用了 addslashes 或者是凭借 get_magic_quotes_gpc 对其间的特别字符进行了转义,在写入数据库的时分仍是保留了本来的数据,可是数据自身仍是脏数据。
在将数据存入到了数据库中之后,开发者就以为数据是可信的。鄙人一次进行需求进行查询的时分,直接从数据库中取出了脏数据,没有进行进一步的查验和处理,这样就会形成SQL的二次注入。比如在之一次刺进数据的时分,数据中带有单引号,直接刺进到了数据库中;然后鄙人一次运用中在凑集的过程中,就形成了二次注入。
0×03二次注入的实例——SQLIlab lesson-24
学习SQL注入,必定要刷SQLIlab,这儿以SQLIlab lesson-24为例,也是调查的二次注入的点。翻开标题
这题正常的流程是首要注册一个账号,然后登陆进去会让你修正新的暗码:
假如直接测验在登陆处测验SQL注入,payload: admin’# 发现失利:
看一下源代码:
登陆处的username和password都通过了mysql_real_escape_string函数的转义,直接履行SQL句子会转义’,所以该处无法形成SQL注入。
Ok,此刻咱们注册一个test’#的账号:
注册用户的时分用了mysql_escape_string过滤参数:
可是数据库中仍是刺进了问题数据test’#
也就是说通过mysql_escape_string转义的数据存入数据库后被复原,这儿做了一个测验:
回到标题,此刻,test用户的本来暗码为test,咱们以test’#用户登陆,再进行暗码修正
咱们无需填写current password即可修正test用户的暗码:
咱们再看一下test用户的暗码:
Ok,咱们看一下源代码:
Username直接从数据库中取出,没有通过转义处理。在更新用户暗码的时分其实履行了下面的指令:
“UPDATEusers SET PASSWORD=’22′ where username=’test’#‘ and password=’$curr_pass’”;
[1] [2] 黑客接单网
网购订单信息假如没看的话,我先带咱们温习一下昨日晚上都说了哪些作业23、donald (新呈现)这意味着假如要与其他线程同享一些数据,则有必要将其仿制。 这是经过postMessage函数完结的。 出...
前语 XSS 主动点按钮有什么损害? 在交际网络里,许多操作都是经过点击按钮建议的,例如宣布留言。假设留言体系有 XSS 缝隙,用户中招后 XSS 除了进犯之外,还能进行传达 —— 它能主动填入留言内...
echo "COUNT: $COUNT"官方修复补丁如下:影响范围==96052==ERROR: AddressSanitizer: use-after-poison on address 0x7ff...
document.write = function(str){1.1获取方针信息 Description: HTML version 5, detected by the doctype decla...
本文描述及介绍了一些常见的Firefox阅读器的沙盒设置,可作为平常闲暇时操作的参阅。 2019年8月,安全专家Cody Crews 告知了Mozilla,称发现一个俄罗斯的新闻网站被植入歹意广告,而...
22看到注册函数这儿了有一个GetEndChat:这个时分经过 dom 解析后源码变成了:然后修正下载的gif文件的后缀名为exe加入到开机发动项,并履行此病毒文件,此病毒文件即BlackEnergy...