首页 > 数据库技术 > 详细

CTF – sql注入(1)

时间:2020-07-28 10:45:11      阅读:81      评论:0      收藏:0      [点我收藏+]

题目地址:http://chinalover.sinaapp.com/web6/index.php

技术分享图片

由图可知,此处给出了源码,源码如下:

技术分享图片

分析源码:页面中输入的参数传到php中,if()对user和pass都进行了是否为空值的判断,若都不为空,则来连接数据库。然后再把页面中的user值赋值给 $user ,把页面中的pass值md5加密后赋值给 $pass ,最后拼接sql语句并执行。而要让flag成功输出的条件为:页面输入的pass经过md5加密后得到的值要和从数据库中查询到的user用户存储在数据库中经过md5加密后的值相同。

 

思路:构造能够返回将密码1 进行md5加密后的mysql语句,这样的话就能满足flag输出的条件,从而获得flag值。

 

准备:获得1经过md5加密后的值

C4CA4238A0B923820DCC509A6F75849B

 

 

 

构造payload:

Sql语句为  “select pw from ctf where user=‘$user ‘”  

页面输入的参数user 将拼接到 $user中

构造 ‘ union select ‘C4CA4238A0B923820DCC509A6F75849B‘ -- (空格)

拼接后为:

select pw from ctf where user=‘’union select ‘c4ca4238a0b923820dcc509a6f75849b‘ -- (空格),这里用’--+’用来注释行不通,用‘-- ‘却可以,问题在哪我也没想明白,先放着吧。

 

 

 

flag:

技术分享图片

 

 

总结:

  1. ‘select 123acav ;’ 该语句执行时报错。
    技术分享图片
     
     
  2. ‘select ‘123abc’; ‘执行成功。

    技术分享图片

 

CTF – sql注入(1)

原文:https://www.cnblogs.com/pywebsecurity/p/13388693.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!