CTF| 简易留言板

news/2024/5/20 0:05:57 标签: CTF, 二次注入

打开网址是个简易留言板,有两个输入框可以输入。

随便输入几个字符提交后,发先提交一条记录返回四个信息。这四个信息中,姓名和内容是由输入内容决定的,其他两个时间和ID是不可控的,时间获取的是当前时间,可能是使用了SQL的now()函数,ID可能是从1自动增长的。

试下注入,输入一个单引号',提示留言失败。在昵称输入两个单引号,留言成功,昵称显示只有一个单引号。这个应该是Insert二次注入。即插入语句存入数据库后,再读出我们需要的信息。

那么我们在昵称处输入 2’,‘3’,‘4’#  ,发现出现错误。那就在井号之前加一个括号)

提示留言成功,并且显示2,3读取时间变成了0000-00-00 00:00:00。可以猜到,ID为自增长,不可控,时间为函数,且在数据库中存储类型为datetime,因此无法读取出4;可控的点在2和3处,由于3的位置前有个单引号,无法控制,则注入点在昵称处,并且输出点为内容。

 

尝试一下将3替换为database(),试试能不能读取到数据库信息。

留言成功,结果显示guestbook,即为当前库名。

再试下版权信息。

版本信息显示5.5.39

再通过读取信息表,来确定当前表的值。

得到当前表名为intd

通过limit来读取第二个表的信息

发现了一个叫key的表

读取key表中的列信息

读取发现,第一列为id

更改limit读取第二列

第二列列名为key

接下来获取key表中的key字段的值。(其中`key`应该是反单引号,打出方式为切换为英文状态,按如下图红色标注键就打出来了。)

 通过id的轮流判断,当id=12的时候,出现了结果

实验总结:

1、二次注入

攻击者构造的恶意数据存储在数据库后,恶意数据被读取并进入到SQL查询语句所导致的注入。防御者可能在用户输入恶意数据时对其中的特殊字符仅仅只是使用了 addslashes 或者是借助 get_magic_quotes_gpc 对其中的特殊字符进行了转义,在写入数据库的时候还是保留了原来的数据,但是数据本身还是脏数据,却被开发者认为是可信数据。当下一次Web程序调用存储在数据库中的恶意数据并执行SQL查询时,就发生了SQL二次注入 。比如在第一次插入数据的时候,数据中带有单引号,直接插入到了数据库中;然后在下一次使用中在拼凑的过程中,就形成了二次注入

2、concat函数

concat()是一个函数,用于用于将两个字符串连接起来,形成一个单一的字符串,类似于字符串拼接。

concat(str1,str2,…)                       
返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。可以有一个或多个参数。

为了阅读清晰,一般加上一个十六进制的分隔符~,其十六进制为0x7e(0x表示十六进制,7e是一个分隔符 ~)


http://www.niftyadmin.cn/n/1865942.html

相关文章

《白帽子讲Web安全》| 学习笔记之客户端脚本安全

第二章浏览器安全 1、同源策略(Same Origin Policy),是一种约定,它是浏览器最核心也是最基本的安全功能。浏览器的同源策略,限制了来自不同源的“document"或脚本,对当前”document"读取或设置某…

《白帽子讲Web安全》| 学习笔记之跨站脚本攻击(XSS)

第3章 跨站脚本攻击(XSS) 1、XSS 跨站脚本攻击,英文全称是Cross Site Script ,本来缩写是CSS ,但是为了和层叠样式表分开,所以在安全领域叫做XSS。 XSS攻击,通常指黑客通过“HTML注入”篡改了网页&#…

CTF | 试试XSS

进入合天网安实验室的实验机&#xff0c;打开网址只显示一个输入框&#xff0c;并提示alert document.domain。 尝试在在输入框输入<script>alert(document.domain)</script> 提交以后页面页面刷新了。再尝试输入<、>&#xff0c;’&#xff0c;"符号。…

《白帽子讲Web安全》| 学习笔记之跨站点请求伪造(CSRF)

第4章 跨站点请求伪造&#xff08;CSRF) 1、CSRF(Cross Site Request Forgery) 浏览器所持有的Cookie分为两种&#xff1a;一种是“Sesion Cookie”&#xff0c;又称“临时Cookie”&#xff1b;另一种是“Third-party Cookie”&#xff0c;也称为“本地cookie”。两者的区别在…

batch执行流程 spring_Spring Batch 之 框架流程简单介绍(二)

Spring Batch流程介绍&#xff1a;上图描绘了Spring Batch的执行过程。说明如下&#xff1a;每个Batch都会包含一个Job。Job就像一个容器&#xff0c;这个容器里装了若干Step&#xff0c;Batch中实际干活的也就是这些Step&#xff0c;至于Step干什么活&#xff0c;无外乎读取数…

《白帽子讲Web安全》| 学习笔记之点击劫持(ClickJacking)

第5章 点击劫持&#xff08;ClickJacking) 1、点击劫持 点击劫持是一种视觉上的欺骗手段。攻击者使用一个透明的、不可见的iframe&#xff0c;覆盖在一个网页上&#xff0c;然后诱使用户在该网页上进行操作&#xff0c;此时用户将在不知情的情况下点击透明的iframe页面。通过…

《白帽子讲Web安全》| 学习笔记之HTML5安全

第6章 HTML5安全 1、新标签的XSS HTML5中新增的一些标签和属性&#xff0c;使得XSS等Web攻击产生了新的变化。有安全研究员建立了一个HTML5 Security Cheatsheet项目。&#xff08;链接:https://www.owasp.org/index.php/HTML5_Security_Cheat_Sheet或http://html5sec.org/&a…

《白帽子讲Web安全》| 学习笔记之注入攻击

第7章 注入攻击 注入攻击的本质是&#xff0c;把用户输入的数据当作代码执行。有两个关键的条件&#xff1a;一是用户能够控制输入&#xff1b;二是原本程序要执行的代码&#xff0c;拼接了用户输入的数据。 1、SQL注入 SQL注入&#xff0c;就是通过把SQL命令插入到Web表单提…