bbqsql是一個知名的盲注SQL開源工具,可以用來做一些簡單傳統的sql注入的滲透測試或者靶場模拟等,但是由于其版本較老,使用的還是python2,且很多庫都是很舊的,接近9年多沒有維護更新,是以如果想要直接使用,一般都是搭建使用預設python2環境的linux系統來使用,但是在安裝使用時還是會碰到一些坑,踩過之後在此總結填平。
系統環境:
使用的是kali-linux-2020.4-installer-amd64.iso,相對較新,但仍使用python2作為預設python,後續的環境版本暫不了解。如果使用的是老版本系統環境,則一般不會遇到問題,隻要安裝成功即可使用。
1.無法直接使用官方方式安裝:
官方推薦sudo pip install bbqsql無法直接安裝,需要去pypi官方下載下傳最新版本(最新版本也已經是2013年的了):https://pypi.org/project/BBQSQL/#files
下載下傳後解壓進入檔案夾BBQSQL-1.2:
安裝指令可以通過輸入python setup.py –help來擷取,指令如下
python setup.py build (編譯)
python setup.py install (安裝)
以上兩個指令不會遇到什麼問題,但是安裝完成後可能會碰到問題:
直接輸入bbqsql進行運作,會提示沒有gevent庫。
此時如果使用pip install gevent,環境提示沒有pip
2.pip2安裝
系統預設的依舊是python2.7,但卻不安裝pip2了。如果使用過去的方式sudo apt install python-pip會提示安裝python3-pip,但是及時安裝成功了,這個pip也是python3的版本,無法安裝到python2的庫中使用,是以需要曲線救國:
使用指令下載下傳python2的pip安裝檔案:
curl https://bootstrap.pypa.io/2.7/get-pip.py -o get-pip.py
這裡一定要添加紅色字标出的2.7,因為pip2的版本已經備份轉移,參照官網預設的下載下傳連結擷取的get-pip.py無法安裝,會提示文法錯誤。
下載下傳完成之後使用指令直接安裝:
python get-pip.py
安裝時會提示pip2在2020年1月不再維護,需要更新到最新的pip版本,這點可以忽略,因為一旦更新,就是隻支援pip3的情況了。
3.gevent新版本不存在coros
安裝完成pip之後,就可以使用來安裝gevent了,如下
pip install gevent
一般大家都會預設gevent,因為bbqsql并不會提示gevent的版本号。是以安裝的是最新的gevent庫。是以如果完成之後,直接輸入bbqsql啟動會報錯:在/usr/local/lib/python2.7/dist-packages/bbqsql/lib/technique.py檔案中,from gevent.coros import Semaphore這行有錯,沒有gevent.coros這個庫。
Github上查詢得知,新版本gevent不再支援coros,而是用lock代替,是以結局方法是,直接在修改/usr/local/lib/python2.7/dist-packages/bbqsql/lib/technique.py檔案,将原先的from gevent.coros import Semaphore替換如下:
try:
from gevent.coros import Semaphore
except:
from gevent.lock import Semaphore
儲存退出。
之後再輸入bbqsql就可以正常啟動盲注sql工具了。