SQL注入实践

1.打开seed虚拟机,使用命令sudo service apache2 start启动apache,发现一条提示,意思就是不能可靠地确定域名,如图

即使右下角标着OK,但我还是不放心,但是,别人配置好的环境,不可能一上来就出问题啊!提示说用回送地址访问服务器,我就想,没域名也没关系,有ip就行了,反正发明域名的原因就是ip不好记,直接用ip皆可以了,然后,果然是可以的。

2.关闭对抗措施,建议使用sudo gedit php.ini,gedit有图形化,sudo是为了有权限保存。

SELECT语句注入

题目要求是在不知道用户名密码的情况下,利用SQL注入漏洞登录进系统。
解决思路

  1. 初步的想法: 题目中给了包含SQL语句的登录源码,利用SQL注入的基本原理(教材P446-447),用OR+永真式通过用户名认证的检测,密码认证需要先经过MD5,我就想找到一个经过MD5哈希后内容为OR+永真式的字符串。
  2. 答案的做法: 答案的是在用户名输入ted'#,密码空着就行,ted是一个已经存在的用户名,用单引号结束这个字符串,用#转义掉后面的语句。获取用户名也很容易,直接点击memberlist就可以看到用户列表。
  3. 看了的答案之后的想法: 利用SQL中的注释,将后面的语句注释掉,替代#的作用,SQL中单行注释是--,后面最好加个空格,即输入bob'--,bob也是一个已知的用户名,经验证也是可以的。
  4. 一个新的发现: 只在用户名出输入单引号,会使这条SQL语句错误,或者其他使这条语句错误的方法,系统会报错并返回发生错误的源码即可得到题目中给出的源码,如图,

    也就是说,可以不用任何提示,就可以得到源码,并分析出漏洞。

UPDATE语句注入

题目要求在profile里面,在不知道其他人密码的情况下修改其资料。这个题没答案,只能自己做了。
解决思路

  1. 找到注入点: 在可供我们填写的框中,有四类:邮箱、密码、个人资料、时间格式。系统会对邮箱进行格式验证,会对密码记性MD5处理,这两处肯定不行。个人资料会被直接存入,不构成SQL语句字段。前三处我试了下,果然都不行,只有最后一处时间格式
  2. 获取更新资料的SQL源码: 仿照SELECT注入的思路,在时间格式处输入是SQL语句产生错误的语句,等待其返回SQL语句源码,如图,

    返回的SQL语句如图,

    从这条语句可以看出,前面修改资料的各项也都是可以注入的(除了signature项),打脸了。那么就随便找个注入吧,结果发现,这些注入点对输入长度有限制,只能改短注入语句。注入语句如图,6为ted的编号,可通过memberlist查到

    注意,实际的id编号是比在memberlist中大1的,ted在memberlist中编号为5,这点我是在错误语句中发现的,下图为我的memberlist截图,

    选取的注入点为Interest输入框,这样就好改前面的语句,而且该框允许输入的内容较长,填写如图,

    提示修改成功,没来的及截图,查看ted资料,修改成功,如图

《网络攻防》 第十二周作业 SQL注入的更多相关文章

  1. 2017-2018-1 《Linux内核原理与设计》第十二周作业

    <linux内核原理与设计>第十二周作业 Sql注入基础原理介绍 分组: 和20179215袁琳完成实验 一.实验说明   SQL注入攻击通过构建特殊的输入作为参数传入Web应用程序,而这 ...

  2. 2017-2018-2 20179205《网络攻防技术与实践》第十一周作业 SQL注入攻击与实践

    <网络攻防技术与实践>第十一周作业 SQL注入攻击与实践 1.研究缓冲区溢出的原理,至少针对两种数据库进行差异化研究 缓冲区溢出原理   在计算机内部,输入数据通常被存放在一个临时空间内, ...

  3. 2019-2020-1 20199329《Linux内核原理与分析》第十二周作业

    <Linux内核原理与分析>第十二周作业 一.本周内容概述: 通过编程理解 Set-UID 的运行机制与安全问题 完成实验楼上的<SET-UID程序漏洞实验> 二.本周学习内容 ...

  4. 第十二周作业_PSP总结报告

    回顾1 (1)回想一下你曾经对计算机专业的畅想 当初你是如何做出选择计算机专业的决定的?经过一个学期,你的看法改变了么,为什么? 你认为过去接触到的课程是否符合你对计算机专业的期待,为什么?经过一个学 ...

  5. 2019春第十二周作业Compile Summarize

    这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 这里 我在这个课程的目标是 能按自己的想法解出题目 这个作业在那个具体方面帮助我实现目标 能朝着软件工程师方向发展 参考文献与网址 C语言 ...

  6. 2017-2018-1 20179215《Linux内核原理与分析》第十二周作业

    Sql注入基础原理介绍 分组:和20179205王雅哲共同完成实验 一.实验说明 1.1 sql注入  SQL注入攻击通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组 ...

  7. 20169211《Linux内核原理及分析》第十二周作业

    Collabtive 系统 SQL 注入实验 实验介绍 SQL注入漏洞的代码注入技术,利用web应用程序和数据库服务器之间的接口.通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串, ...

  8. C语言第十二周作业

        这个作业属于那个课程 C语言程序设计II 这个作业要求在哪 https://edu.cnblogs.com/campus/zswxy/computer-scienceclass3-2018/h ...

  9. 集美大学网络1413第十二次作业成绩(个人作业3) -- Alpha阶段个人总结

    题目 个人作业3--个人总结(Alpha阶段) 优秀作业链接:**068 未交:**087 个人作业3成绩 学号 姓名 总结(4) 5个问题(2.5) 自我评价(2.5) 博客互动 (1) 总分(10 ...

随机推荐

  1. Java继承与接口

    public class test { public static void main(String[] args) { // TODO Auto-generated method stub B b= ...

  2. Azure VNet介绍

    Azure VNet的介绍 VNet是Azure云中逻辑隔离的虚拟网络.它包含两个含义: Azure的用户可以在VNet中创建自己的各种资源,感觉想自己的数据中心中一样; 在一个VNet中创建的资源和 ...

  3. Hot resize Multipath Disk – Linux

    This post is for the users of the great dm-multipath system in Linux, who encounter a major availabi ...

  4. QString 乱谈(1)

    一个月前尝试写了一篇关于QStringLiteral,存盘时MoinMoin罢工了.吸取一点经验,还是写成短篇吧 可是,可是,QString不就是简简单单一个字符串么?能有什么可谈的.真的么... ( ...

  5. mysql查询最近30天、7天、每天、昨天、上个月的记录

      一些变量说明: add_time为插入的时间 to_days是sql函数,返回的是个天数 data_sub(date,INTERVAL expr type)给指定的日期减去多少天 data()函数 ...

  6. SpringMVC—对Ajax的处理(含 JSON 类型)(1)

    一.首先要搞明白的一些事情. 1.从客户端来看,需要搞明白: (1)要发送什么样格式的 JSON 数据才能被服务器端的 SpringMVC 很便捷的处理,怎么才能让我们写更少的代码,如何做好 JSON ...

  7. python-xlrd 实现excel 导入数据

    首先安装 xlrd 两种方式: 1.wheel 方式 安装: 首先要下载 wheel :

  8. 如何通过outline为SQL语句指定执行计划

    创建测试表 以用户jyu连接,创建测试表 SQL> conn jyu/jyu; Connected. SQL> create table t (id number, name varcha ...

  9. bash: telnet: command not found

    //安装telnet服务 yum -y install telnet-server //安装telnet客户端 yum -y install telnet.*

  10. Android Studio 搭配 Tortoise SVN 安装问题汇总

    (1)Android studio 中想要使用SVN,但是在安装 1.9版本的SVN,会报SVN is too old(实际是太新了)的错误.所以只能下载1.8以下版本 (2)安装svn时,需要手动选 ...