Robomongo no Fedora 20 x86_64

Estou pensando em usar mongodb com database para o driller, com mongodb + golang e ai para melhor gerencioamento até começar a desenvolver, achei uma interface gráfica, para mongodb, chamado Robomongo:

No site: 

http://robomongo.org/download.html

robomongo-0.8.0-x86_64.rpm funciona no Fedora 20 x86_64, já a versão robomongo-0.8.4-1.x86_64 ainda não e como é glibc(libc e libstdc++), já viu mexer nessas dependências, é quebra do OS, na certa!

Então:

error: Failed dependencies:
libc.so.6 >= 2.12 is needed by robomongo-0.8.4-1.x86_64
libstdc++.so.6 >= 6.0.13 is needed by robomongo-0.8.4-1.x86_64

Download (robomongo-0.8.0-x86_64.rpm):

wget http://robomongo.org/files/linux/robomongo-0.8.0-x86_64.rpm
rpm -i robomongo-0.8.0-x86_64.rpm

Dependências:

qt5-qtbase-5.2.1-6
qt5-qtxmlpatterns-5.2.1-1
qt5-qtserialport-5.2.1-1
unixODBC-2.3.2-4
mingw-binutils-generic-2.23.52.0.1-2
mingw-filesystem-base-99-3
mingw32-filesystem-99-3
mingw64-filesystem-99-3
mingw64-crt-3.1.0-2
mingw32-crt-3.1.0-2
mingw64-pkg-config-0.28-2
mingw32-pkg-config-0.28-2
mingw64-zlib-1.2.8-2
mingw64-libpng-1.6.10-1
mingw64-libjpeg-turbo-1.3.0-1
mingw64-sqlite-3.8.2-1
mingw64-win-iconv-0.0.4-3
mingw64-libxml2-2.9.1-3
mingw64-libxslt-1.1.28-3
mingw64-dbus-1.6.12-1
mingw64-openssl-1.0.1e-5
mingw32-lcms2-2.5-1
mingw64-openjpeg-1.5.1-7
mingw64-libwebp-0.2.1-3
mingw64-lcms2-2.5-1
mingw64-bzip2-1.0.6-4
mingw64-freetype-2.5.0.1-1
mingw32-winpthreads-3.1.0-1
mingw32-headers-3.1.0-1
mingw64-termcap-1.3.1-16
mingw64-winpthreads-3.1.0-1
mingw64-headers-3.1.0-1
mingw64-binutils-2.23.52.0.1-2
mingw64-cpp-4.8.2-1
mingw64-gcc-4.8.2-1
mingw64-gcc-c++-4.8.2-1
mingw64-angleproject-0-0.9.svn2215.20130517
mingw64-gettext-0.18.3.1-1
mingw64-postgresql-9.3.4-1
mingw64-libtiff-4.0.3-3
mingw64-poppler-0.24.5-1
mingw64-pcre-8.33-3
mingw32-cpp-4.8.2-1
mingw32-binutils-2.23.52.0.1-2
mingw32-gcc-4.8.2-1
mingw32-gcc-c++-4.8.2-1
mingw32-zlib-1.2.8-2
mingw32-angleproject-0-0.9.svn2215.20130517
mingw32-libpng-1.6.10-1
mingw32-libjpeg-turbo-1.3.0-1
mingw32-sqlite-3.8.2-1
mingw32-win-iconv-0.0.4-3
mingw32-libxml2-2.9.1-3
mingw32-dbus-1.6.12-1
mingw32-libxslt-1.1.28-3
mingw32-libtiff-4.0.3-3
mingw32-openssl-1.0.1e-5
mingw32-pcre-8.33-3
mingw32-openjpeg-1.5.1-7
mingw32-libwebp-0.2.1-3
mingw32-bzip2-1.0.6-4
mingw32-freetype-2.5.0.1-1
mingw32-poppler-0.24.5-1
mingw32-termcap-1.3.1-16
mingw32-gettext-0.18.3.1-1
mingw32-postgresql-9.3.4-1
qt5-qtbase-odbc-5.2.1-6
freetds-0.91-9.gitb760a89
qt5-qtbase-tds-5.2.1-6
qt5-qtconfiguration-0.2.1-1
xcb-util-renderutil-0.3.8-4
check-0.9.10-3
check-devel-0.9.10-3
openal-soft-1.15.1-3
xcb-util-keysyms-0.3.9-3
mesa-libGLES-10.0.4-1.20140312
clucene09-core-0.9.21b-8
cmake-2.8.12.2-2
mingw64-qt5-qttools-tools-5.2.1-2
mingw64-qt5-qmake-5.2.1-1
mingw64-qt5-qtbase-5.2.1-1
mingw64-qt5-qtdeclarative-5.2.1-1
mingw64-qt5-qtmultimedia-5.2.1-1
mingw64-qt5-qtsensors-5.2.1-1
mingw64-qt5-qt3d-5.0.0-0.10.git20130923.7433868
mingw64-qt5-qtlocation-5.2.1-1
mingw64-qt5-qmldevtools-5.2.1-1
mingw64-poppler-qt5-0.24.5-1
mingw64-qt5-qtscript-5.2.1-1
xz-devel-5.1.2-8alpha
libxml2-devel-2.9.1-2
gstreamer-devel-0.10.36-6
gstreamer-plugins-base-devel-0.10.36-6
postgresql-libs-9.3.4-1
qt5-qtbase-postgresql-5.2.1-6
mariadb-libs-5.5.36-1
qt5-qtbase-mysql-5.2.1-6
mingw32-qt5-qttools-tools-5.2.1-2
mingw32-qt5-qmake-5.2.1-1
mingw32-qt5-qtbase-5.2.1-1
mingw32-qt5-qtdeclarative-5.2.1-1
mingw32-qt5-qtsensors-5.2.1-1
mingw32-qt5-qmldevtools-5.2.1-1
mingw32-qt5-qt3d-5.0.0-0.10.git20130923.7433868
mingw32-qt5-qtlocation-5.2.1-1
mingw32-qt5-qtmultimedia-5.2.1-1
mingw32-qt5-qtscript-5.2.1-1
mingw32-poppler-qt5-0.24.5-1
xcb-util-wm-0.3.9-3
xcb-util-image-0.3.9-3
qt5-qtbase-gui-5.2.1-6
qt5-qtdeclarative-5.2.1-1
qt5-qtscript-5.2.1-1
qt5-qttools-5.2.1-1
qt5-qtwebkit-5.2.1-1
qt5-qtquick1-5.2.1-1
qt5-qtmultimedia-5.2.1-1
qt5-qtlocation-5.2.1-1
qt5-qtconnectivity-5.2.1-1
qt5-qtsensors-5.2.1-1
qt5-qtsvg-5.2.1-1
qt5-qtimageformats-5.2.1-1
qt5-gstreamer-0.10.3-2
qt5-qtquickcontrols-5.2.1-1
qt5-qtwayland-5.1.0-0.6.20131203git6b20dfe
qt5-qtaccountsservice-0.1.1-3
libqtxdg-qt5-0.5.0-1.20131113gitf27fc3f
qt5-qtx11extras-5.2.1-1
firebird-libfbclient-2.5.2.26539.0-8
qt5-qtbase-ibase-5.2.1-6
qt5-qtbase-devel-5.2.1-6
qt5-qtdeclarative-devel-5.2.1-1
qt5-qttools-devel-5.2.1-1
qt5-qtscript-devel-5.2.1-1
qt5-qtquick1-devel-5.2.1-1
qt5-qttools-static-5.2.1-1
qt5-qtwebkit-devel-5.2.1-1
qt5-qtdeclarative-static-5.2.1-1
qt5-qtmultimedia-devel-5.2.1-1
libqtxdg-qt5-devel-0.5.0-1.20131113gitf27fc3f
qt5-qtimageformats-devel-5.2.1-1
qt5-qtlocation-devel-5.2.1-1
qt5-qtbase-static-5.2.1-6
qt5-qtconfiguration-devel-0.2.1-1
qt5-qtsvg-devel-5.2.1-1
qt5-qtx11extras-devel-5.2.1-1
qt5-qtxmlpatterns-devel-5.2.1-1
qt5-qtconnectivity-devel-5.2.1-1
qt5-qtserialport-devel-5.2.1-1
qt5-qtwayland-devel-5.1.0-0.6.20131203git6b20dfe
qt5-qtsensors-devel-5.2.1-1
qt5-gstreamer-devel-0.10.3-2
qt5-qtaccountsservice-devel-0.1.1-3
qt5-qtquickcontrols-doc-5.2.1-1
qt5-qtimageformats-doc-5.2.1-1
qt5-qtsvg-examples-5.2.1-1
qt5-qtsvg-doc-5.2.1-1
qt5-qtsensors-examples-5.2.1-1
qt5-qtsensors-doc-5.2.1-1
qt5-qtconnectivity-doc-5.2.1-1
qt5-qtconnectivity-examples-5.2.1-1
qt5-qtlocation-doc-5.2.1-1
qt5-qtlocation-examples-5.2.1-1
qt5-qtmultimedia-examples-5.2.1-1
qt5-qtmultimedia-doc-5.2.1-1
qt5-qtquick1-examples-5.2.1-1
qt5-designer-plugin-webkit-5.2.1-1
qt5-qtwebkit-doc-5.2.1-1
qt5-assistant-5.2.1-1
qt5-qttools-doc-5.2.1-1
qt5-qttools-examples-5.2.1-1
qt5-qtscript-examples-5.2.1-1
qt5-qtscript-doc-5.2.1-1
qt5-qtdeclarative-examples-5.2.1-1
qt5-qtdeclarative-doc-5.2.1-1
qt5-qtxmlpatterns-examples-5.2.1-1
qt5-qdbusviewer-5.2.1-1
qt5-qtbase-examples-5.2.1-6
mingw32-poppler-qt5-static-0.24.5-1
mingw32-qt5-qtquick1-5.2.1-1
mingw32-qt5-qtwebkit-5.2.1-2
mingw32-qt5-qmldevtools-devel-5.2.1-1
mingw32-qt5-qtsystems-5.0.0-0.10.git20130911.5084080
mingw32-qt5-qtgraphicaleffects-5.2.1-1
mingw32-qt5-qtsvg-5.2.1-1
mingw32-qt5-qtbase-devel-5.2.1-1
mingw32-qt5-qttools-5.2.1-2
mingw32-qt5-qtbase-static-5.2.1-1
mingw32-qt5-qtimageformats-5.2.1-1
mingw64-qt5-qtquick1-5.2.1-1
mingw64-poppler-qt5-static-0.24.5-1
mingw64-qt5-qmldevtools-devel-5.2.1-1
mingw64-qt5-qtwebkit-5.2.1-2
mingw64-qt5-qtsystems-5.0.0-0.10.git20130911.5084080
mingw64-qt5-qtgraphicaleffects-5.2.1-1
mingw64-qt5-qtbase-static-5.2.1-1
mingw64-qt5-qtsvg-5.2.1-1
mingw64-qt5-qtbase-devel-5.2.1-1
mingw64-qt5-qtimageformats-5.2.1-1
mingw64-qt5-qttools-5.2.1-2
mingw32-qt5-qtjsbackend-5.1.1-3
mingw64-qt5-qtjsbackend-5.1.1-3
qt5-qtserialport-doc-5.2.1-1
qt5-qtxmlpatterns-doc-5.2.1-1
qt5-qtbase-doc-5.2.1-6
qt5-qtgraphicaleffects-5.2.1-1
qt5-qttranslations-5.2.1-1
mingw64-qt5-qttranslations-5.2.1-1
qt5-qtdoc-5.2.1-1
mingw32-qt5-qttranslations-5.2.1-1

@firebitsbr

Golang: driller um WAS (Web Application Scanner em golang)

Então, estou tentando desenvolver um WAS (Web Application Scanner em golang), qual dei o nome de driller:

http://projects.webappsec.org/w/page/13246986/Web%20Application%20Security%20Scanner%20Evaluation%20Criteria

Ainda não dei push no github, pois preciso melhorar algumas coisas, mas por enquanto tem um vídeo aqui, apenas do Crawler:

@firebitsbr

 

 

 

Git: How to recursively add the files in a directory

firebits:

git commit folder inteiro

Postado originalmente em Programming in Linux:

If you are working with Git and want to add a new file or directory, follow the following steps

Go to the directory where your files are located.

$ cd directory
$ git add *

Now you must commit these changes (You can give necessary comments)

$ git commit -m "Adding new files"

If you want to add a directory and all the files which are located inside it recursively, Go to the directory where the directory you want to add is located.

$ cd directory
$ git add directoryname

Now you must commit these changes (You can give necessary comments)

$ git commit -m "Adding a new directory"

Note that the above step will commit recursively the subdirectories and files present in the directory.

Ver original

golang: Setando variável $GOPATH para o path correto no Fedora 20

Não tem coisa pior quando você está desenvolvendo software em Golang, do que não achar o path para a variável $GOPATH para o path correto no Fedora 20, por exemplo. Há uma forma de fazer isso no arquivo .bashrc ou no /etc/profile, mas ainda assim você deve saber onde fica o caminho correto. Isso varia de distro para distro (ex: no Debian o PATH para GOPATH é diferente do Fedora.)

No Fedora 20, é feito assim:

#sudo  export GOPATH=/usr/lib64/golang

@firebitsbr

golang: Criando um Http Methods Tester v0.1 by firebits – baseado na RFC 2616

Já faz um tempo que estou me aprofundando nos conceitos da OWASP, há muito no que aprofundar ainda. Estou desenvolvendo um WAS (Web Application Scanner) open source e apenas “free for fun”, mesmo. :)

Esse source code que fiz foi para explorar Http Methods, sendo que pode detectar alguns considerados vulneráveis em um web server.

Referência:

https://www.owasp.org/index.php/Test_HTTP_Methods_(OTG-CONFIG-006)

golang.org

my brain;)

/* Http Methods Tester v0.1
* RFC 2616 http://www.ietf.org/rfc/rfc2616.txt
* Obtem os HTTP Methods de uma web app
* Mauro Risonho de Paula Assumpção aka firebits
* 24.03.2014 23:01:17
* License BSD 3
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
* * Neither the name of the nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/

package main
import (
“net”
“os”
“fmt”
“io/ioutil”
)

func main() {
if len(os.Args) != 2 {
fmt.Fprintf(os.Stderr, “Uso: %s host:port “, os.Args[0])
os.Exit(1)

}
service := os.Args[1]
tcpAddr, err := net.ResolveTCPAddr(“tcp4″, service)

//Verificador de Error(err)
//TODO:
// tentar usar while e usar vetor
conn_TRACE, err := net.DialTCP(“tcp”, nil, tcpAddr)
conn_CONNECT, err := net.DialTCP(“tcp”, nil, tcpAddr)
conn_OPTIONS, err := net.DialTCP(“tcp”, nil, tcpAddr)
conn_PUT, err := net.DialTCP(“tcp”, nil, tcpAddr)
conn_POST, err := net.DialTCP(“tcp”, nil, tcpAddr)
conn_GET, err := net.DialTCP(“tcp”, nil, tcpAddr)
conn_HEAD, err := net.DialTCP(“tcp”, nil, tcpAddr)
conn_DELETE, err := net.DialTCP(“tcp”, nil, tcpAddr)

//Verificador de Error(err)
_, err = conn_TRACE.Write([]byte(“TRACE / HTTP/1.0\r\n\r\n”))
_, err = conn_CONNECT.Write([]byte(“CONNECT / HTTP/1.0\r\n\r\n”))
_, err = conn_OPTIONS.Write([]byte(“OPTIONS / HTTP/1.0\r\n\r\n”))
_, err = conn_PUT.Write([]byte(“PUT / HTTP/1.0\r\n\r\n”))
_, err = conn_POST.Write([]byte(“POST / HTTP/1.0\r\n\r\n”))
_, err = conn_GET.Write([]byte(“GET / HTTP/1.0\r\n\r\n”))
_, err = conn_HEAD.Write([]byte(“HEAD / HTTP/1.0\r\n\r\n”))
_, err = conn_DELETE.Write([]byte(“DELETE / HTTP/1.0\r\n\r\n”))

//Verificador de Error(err)
//resultado, err := readFully(conn_Method)
result_TRACE, err := ioutil.ReadAll(conn_TRACE)
result_CONNECT, err := ioutil.ReadAll(conn_CONNECT)
result_OPTIONS, err := ioutil.ReadAll(conn_OPTIONS)
result_PUT, err := ioutil.ReadAll(conn_PUT)
result_POST, err := ioutil.ReadAll(conn_POST)
result_GET, err := ioutil.ReadAll(conn_GET)
result_HEAD, err := ioutil.ReadAll(conn_HEAD)
result_DELETE, err := ioutil.ReadAll(conn_DELETE)

checkError(err)

// exibir os resultados dos HTTP Methods
// TODO fazer algo que detecte se foi renderizado ou não, ou se retorna request 200
// ou 405
fmt.Println(“TRACE”)
fmt.Println(string(result_TRACE))
fmt.Println(“============================================================”)

fmt.Println(“CONNECT”)
fmt.Println(string(result_CONNECT))
fmt.Println(“============================================================”)

fmt.Println(“OPTIONS”)
fmt.Println(string(result_OPTIONS))
fmt.Println(“============================================================”)

fmt.Println(“PUT”)
fmt.Println(string(result_PUT))
fmt.Println(“============================================================”)

fmt.Println(“POST”)
fmt.Println(string(result_POST))
fmt.Println(“============================================================”)

fmt.Println(“GET”)
fmt.Println(string(result_GET))
fmt.Println(“============================================================”)

fmt.Println(“HEAD”)
fmt.Println(string(result_HEAD))
fmt.Println(“============================================================”)

fmt.Println(“DELETE”)
fmt.Println(string(result_DELETE))
fmt.Println(“============================================================”)

os.Exit(0)
}
func checkError(err error) {
if err != nil {
fmt.Fprintf(os.Stderr, “Erro Fatal: %s”, err.Error())
os.Exit(1)
}
}

Há muito o que melhorar ainda, como usar vetor e quem sabe um while e ir fazendo trocas de http methods, mas vou revisando e postando aqui no blog.

Depois passo para meu git também.

No próximo post, vou falar sobre http methods com webdav, que é similar na essência, mas tem outra utilidade, um pouco diferenciada.

@firebitsbr

Golang: Gerador de PDFs sem parser por HTML – design on the fly

Estava procurando uma lib para golang onde gerar PDFs sem fazer parser por HTML – design on the fly, ou seja, desenhado via sources em golang.

Achei este projeto e é interessante:

https://github.com/adkennan/dox2go

Obter a Lib (Fedora 20):

# export GOPATH=/usr/lib64/golang/
# go get https://github.com/adkennan/dox2go

As vezes, mesmo com “go get”, a lib nem sempre vai para o lugar certo. Então você deve copiar para /usr/lib64/golang/src e /usr/lib64/golang/src/dkg manualmente.

Compilação:
Localizar exemplos para testar (caso você fez git clone no seu $HOME):

# $HOME/dox2go/examples/pdf01
# go build main.go
# ./main

Resultado:
# ls -las
# tmp.pdf
# evince tmp.pdf

tmp.pdf (as superuser)_172

OBS: evince se você estiver em um X11, mas pode-se usar também xpdf e outros.

Espero ter ajudado.

@firebitsbr